2014-01-06 35 views
-1

我試圖在MPMoviePlayercontroller中按下按鈕上的某種通知。問題是,按下按鈕時我沒有收到任何類型的通知。我爲此使用NSNotification。爲什麼我沒有收到通知?MPMoviePlayerController中的NSNotification

ViewDidLoad:

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(exitedFullScreen) 
              name:MPMoviePlayerPlaybackStateDidChangeNotification object:nil]; 

和方法

-(void) exitedFullScreen 
{ 
    NSLog(@"TEST"); 
} 

代碼來調用MPMoviePlayer

NSString *youTubeVideoHTML = @"<!DOCTYPE html><html><head><style>body{margin:0px 0px 0px 0px;}</style></head> <body> <div id=\"player\"></div> <script> var tag = document.createElement('script'); tag.src = \"http://www.youtube.com/player_api\"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); var player; function onYouTubePlayerAPIReady() { player = new YT.Player('player', { width:'%0.0f', height:'%0.0f', videoId:'%@', events: { } }); } function onPlayerReady(event) { event.target.playVideo(); } </script> </body> </html>"; 


NSString *embedHtml = [NSString stringWithFormat: youTubeVideoHTML, 
         webView.frame.size.width, 
         webView.frame.size.height, 
         youtubeId[0]]; 

webView.mediaPlaybackRequiresUserAction = NO; 

[webView loadHTMLString: embedHtml baseURL: [NSURL URLWithString: @"http://youtube.com"]]; 
+0

如何創建webView是它的類屬性還是局部變量? – kkocabiyik

+0

我用過的屬性 @property(弱,非原子)IBOutlet UIWebView * webView; – user3140296

+0

你沒有任何MPMoviePlayer,你期待從MPMoviePlayer – kkocabiyik

回答

1

退出全屏不會改變播放狀態。如果您想知道何時全屏退出,請註冊MPMoviePlayerDidExitFullscreenNotification。另外,就像一般慣例一樣,最好是你的回調方法有冒號(例如exitedFullScreen:)。該參數爲通知本身:

- (void) exitedFullScreen: (NSNotification*) n { 
    NSLog(@"%@", @"TEST"); 
} 
+0

我測試過這個,我還沒有得到測試日誌消息... – user3140296

+0

也許更深層次的事情正在進行。你記得保留你的MPMoviePlayerController嗎?顯示創建MPMoviePlayerController的代碼,保留它並將其視圖放入窗口中。 – matt

+0

這裏我使用的代碼叫做MPMoviePlayer – user3140296

0

您應該創建一個MPMoviePlayerViewController,並與您的視頻網址初始化並出示。播放視頻並關閉後,您將收到通知。

+0

但是這意味着我不能使用我的loadhtmlstring對嗎?我使用API​​,因爲它會播放所有的YouTube歌曲,並且可以自動播放。 – user3140296

+0

您將無法使用loadhtmlstring cuz,因此根本不需要它。 MpMoviePlayerViewcontroller在屏幕上顯示時自動啓動。如果開始自動播放,還有一個屬性可以管理。 – kkocabiyik