6*4DSFFOΛͬͯνΣοΫ
w εΫϦʔϯ͕Ωϟϓνϟ͞Ε͍ͯΔͱϑϥάཱ͕ͭ
w J04Ќ൛ͷ్த͔Βಋೖ͞Εͨ
UIScreen.main.isCaptured // -> true or false
Slide 11
Slide 11 text
/PUJpDBUJPO$FOUFSͰࢹ
w εΫϦʔϯͷΩϟϓνϟ͕։࢝ɾऴྃ͞ΕΔͱ͜ͷ௨͕ඈͿ
w J04Ќ൛ͷ࠷ޙͷํʹಋೖ͞Εͨ
Notification.Name.UIScreenCapturedDidChange
Slide 12
Slide 12 text
όονϦͩͱࢥͬͨΒʜ
w ͜ΕͰࢹௌதʹըͨ͠Β࠶ੜ
ΛࢭΊͯΞϥʔτΛग़ͤΔɺΑ
͔ͬͨ
w ʜͱࢥ͍ͬͯΔͱ"JS1MBZ$BTU
͕Ͱ͖ͳ͘ͳ͍ͬͯͨ
IUUQTEFWFMPQFSTHPPHMFDPNDBTU
IUUQTEFWFMPQFSBQQMFDPNBJSQMBZ
Slide 13
Slide 13 text
IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOVJLJUVJTDSFFOJTDBQUVSFE
͖ͬ͞ͷJT$BQUVSFEʹҙॻ͖͕
w "1*%PDʹϛϥʔϦϯά"JS1MBZϑϥάΛཱͯΔͱॻ͍ͯ͋Δ
w ·͔͞ͷըҎ֎ಓ࿈Εʹʜ
Slide 14
Slide 14 text
"JS1MBZɾ$BTUΛݕग़͢Δ
w "71MBZFSͰ࠶ੜ͍ͯ͠ΔͷͰ͋Εɺ"JS1MBZ$BTUΛݕग़Մೳ
w ͦͷ"1*ͱΈ߹Θͤͯʮϑϥάཱ͍ͬͯΔ͕ͦΕ"JS1MBZͰ
ͳ͍ʯঢ়ଶΛݕग़
// player: AVPlayer
UIScreen.main.isCaptured && !player.isExternalPlaybackActive
Slide 15
Slide 15 text
ϛϥʔϦϯάΛݕग़͢Δ
w ϛϥʔϦϯά6*4DSFFOͷNJSSPSFEͰݕग़Մೳ
w ࢼͯ͠ΈͨΒϛϥʔϦϯάதʹ6*4DSFFOͷΦϒδΣΫτ͕த
ʹೖ͍ͬͯͨ
UISCreen.screens.map { $0.mirrored }
Slide 16
Slide 16 text
ϛϥʔϦϯάத͔ͭըதͷݕग़͍͠ʁ
w ͨͩ͠ϛϥʔϦϯά্Ͱಉ
࣌ʹ࠶ੜ͕͞ΕΔ
w ઌͷϑϥάΛΈ߹Θͤͯϛϥʔ
ϦϯάதͷըPOP⒎Θ͔Βͳ͍
JT$BQUVSFEৗʹUSVFʹͳΔͷͰ
w ํ๏͕ݟ͚ͭΒΕͣɺϛϥʔϦϯά
ෆڐՄʹ͢Δ͔͠ͳ͍ʜ
"JS1MBZ$BTU
ϛϥʔϦϯά
"JS1MBZத
IUUQXXXTBNQMFWJEFPTDPN
Slide 17
Slide 17 text
ͱࢥ͍ͬͯͨΒ
w J04͙Β͍͔ΒϛϥʔϦϯάதͦͦϨίʔσΟϯάϘλϯΛԡͤͳ
͍Α͏ʹมߋ͞Ε༷ͨ
w ͬͯ͜ͱઌͷϑϥάΛݟͯϛϥʔϦϯάΛڐՄ͢Εେৎʜ
͜͜·ͰͰͨͬͯͨΒʜ
w IUUQTEFWFMPQFSBQQMFDPNTUSFBNJOHGQT
͜ͷެࣜࢿྉ͕શͯͰ͢ʂʂʂ
Slide 20
Slide 20 text
·ͩ࣌ؒ͋Γͦ͏ͩͬͨΒ
Slide 21
Slide 21 text
'BJS1MBZ4USFBNJOH '14
w '14ͱ͍͏ͷ͏ͱ)-4ͷίϯςϯπΛϓϩςΫτͰ͖Δ
w ίϯςϯπΛ҆શʹ҉߸Խɾෳ߹Խ͢Δ伴ͷΓऔΓͷͨΊͷΈ
w ըͨ͠'14ͷίϯςϯπΛ࠶ੜͨ͠߹ɺͦͷ෦͚ͩը͕Ͱ͖͍ͯͳ
͍ঢ়ଶʹͳΔͬΆ͍
Slide 22
Slide 22 text
ਖ਼֬ʹ͙ʹ͜Ε͕Ұ൪͍͍ʁ
w ͿͬͪΌ͚͜Ε͕Ұ൪ਖ਼͍͠બ
w ͨͩ͠ɺ͙͢৴Λ༻ҙͰ͖ͳ͍߹ΫϥΠΞϯτଆͰରԠ͢Δͷ͕ݱ࣮త
ʹָ
Slide 23
Slide 23 text
҉߸ԽͷͨΊʹ,FZ4FSWFSΛ༻ҙ͢Δ
w ίϯςϯπΛऔಘͯ͠"7'PVOEBUJPO
ʹ͢ͱ伴Λཁٻ͞ΕΔ
w ,FZTFSWFS伴ΛϦΫΤετ
w 04͕ɺͦͷ伴Ͱ$POUFOU4FSWFSͷ҉
߸ԽίϯςϯπΛ%FDSZQU
w ৄࡉIUUQTEFWFMPQFSBQQMFDPN
TUSFBNJOHGQT
'14ରԠΞϓϦ
04
,FZ4FSWFS
$POUFOU4FSWFS