在Objective-C,我訂閱了UIWindowDidBecomeVisibleNotification
知道一些觀點得到上面我當前視圖控制器,使用:的UIWebView和斯威夫特:檢測當視頻開始播放
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(videoStartedPlaying:)
name:UIWindowDidBecomeVisibleNotification
object:nil];
到目前爲止,一切都很好。然後,在通知,我可以檢查如果對象是特定類別的不(如_UIAlertControllerShimPresenterWindow
-alert或則須─UITextEffectsWindow
-native共享視圖 - )。在Objective-C,我就是這麼做的:
- (void)videoStartedPlaying:(NSNotification *)notification
{
if (
<radio_is_playing>
&&
! [notification.object isKindOfClass:NSClassFromString(@"_UIAlertControllerShimPresenterWindow")] // Alert view
&&
! [notification.object isKindOfClass:NSClassFromString(@"UITextEffectsWindow") ] // Share
)
{
// Video, stop the radio stream
}
}
這讓我停止播放聲音(在這種情況下,HTTP廣播流)從UIWebView
啓動視頻時(這是用來展示新聞) 。我試圖做同樣的事情在斯威夫特,所以我訂閱了通知:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "videoStartedPlaying:", name: UIWindowDidBecomeVisibleNotification, object: nil)
而現在,接到通知時...
func videoStartedPlaying(notification: NSNotification) {
if <radio_is_playing> && !notification.object? is _UIAlertControllerShimPresenterWindow && !notification.object? is UITextEffectsWindow {
// Stop the radio stream
}
}
Xcode中說Use of undeclared type '_UIAlertControllerShimPresenterWindow'
。 UITextEffectsWindow
也會發生同樣的情況。
我假設我必須導入東西來檢測這些類,但我應該導入什麼?
是否有任何其他的方式來做到這一點無需橋接Objective-C的?我怎麼能訪問這個類?
預先感謝您。
沒有人進入此? –
我只是檢查如果notification.objevt是UIWindow,做暫停的東西 – Bastet