我有一個應用程序,它擁有版權內容。我不希望用戶記錄它。如果他們開始錄製屏幕,我希望我的應用能夠抓住這一點。如果正在記錄屏幕,捕捉的功能是什麼?如何瞭解設備屏幕是否正在IOS中錄製11
我不想阻止,我想理解並接受它。
注意:某些答案表示解決方案包括AirPlay和鏡像。我想要的只是在應用程序之前或應用程序期間啓動屏幕錄製。我想讓用戶使用AirPlay和鏡像。
我有一個應用程序,它擁有版權內容。我不希望用戶記錄它。如果他們開始錄製屏幕,我希望我的應用能夠抓住這一點。如果正在記錄屏幕,捕捉的功能是什麼?如何瞭解設備屏幕是否正在IOS中錄製11
我不想阻止,我想理解並接受它。
注意:某些答案表示解決方案包括AirPlay和鏡像。我想要的只是在應用程序之前或應用程序期間啓動屏幕錄製。我想讓用戶使用AirPlay和鏡像。
您也可以檢測,如果用戶通過聆聽UIApplicationUserDidTakeScreenshotNotification
採取截圖。
您可以使用下面way-
let main = OperationQueue.main
NotificationCenter.default.addObserver(forName: NSNotification.Name.UIApplicationUserDidTakeScreenshot,
object: nil,
queue: mainQueue,
using: { notification in
// Warn user
})
而且
UIScreen.main.isCaptured
This也可用於檢測記錄。我沒有使用過,但大多數情況下你必須爲此做KVO。
我不想檢測屏幕截圖。只想檢測屏幕的記錄。也不是播放或鏡像。 – birdcage
檢查畫面被記錄(對目標C)
把下面的代碼對你的應用程序代理,做完成發射,也變得活躍。
BOOL isCaptured = [[UIScreen mainScreen] isCaptured];
使用UIScreen.main.isCaptured獲取當前狀態。比你需要聽新的通知UIScreenCapturedDidChangeNotification。當錄製狀態改變時,您需要執行一些操作(例如停止播放等)。請記住,這只是iOS11 +。
代碼片段:
if (@available(iOS 11.0, *)) {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(capturedChange)
name:UIScreenCapturedDidChangeNotification object:nil];
}
- (void)capturedChange {
if (@available(iOS 11.0, *)) {
NSLog(@"Recording Status: %s", [UIScreen mainScreen].isCaptured ? "true" : "false");
//do something
}
}
的可能的複製[如何防止ios11屏幕記錄(https://stackoverflow.com/questions/45401959/how-to-prevent-screen-record-in- ios11) –