2014-01-21 21 views
5

この問題に気付いてくれてありがとう。私はこの方法のように、AVPlayerを経て、私のアプリで音楽を再生するためにシングルトンを使用しています:それは正常に動作しますAVPlayerとUIWebViewの同時再生を避ける

AVAudioSession *session = [AVAudioSession sharedInstance]; 
[session setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[session setActive:YES error:nil]; 

AVURLAsset *musicAsset = [[AVURLAsset alloc] initWithURL:url options:nil]; 
AVPlayerItem *playerItem = [AVPlayerItem playerItemWithAsset:musicAsset]; 

AVPlayer *player = [AVPlayer playerWithPlayerItem:_playerItem]; 

player.actionAtItemEnd = AVPlayerActionAtItemEndNone; 

[player play]; 

。しかし、私のアプリはいくつかの音楽ページ(HTML5)を持っているので、ユーザーはウェブページにアクセスして音楽を再生することもできます。 UIWebViewAVPlayerの音楽は同時に演奏することができ、非常に奇妙なようです。 UIWebViewが音楽を再生するかどうかを検出する方法はありますか?ネイティブAVPlayerを停止できますか?ありがとう!

+1

こんにちはハング、あなたはそれについて解決策を持っていますか? –

答えて

2

AVPlayerItemBecameCurrentNotificationをリッスンしましたか? Webページがメディアファイル(ビデオまたはオーディオ)を起動すると、このファイルが解凍されます。次のようにあなたはそれを傍受することができます

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(avPlayerItemBecameCurrent:) 
              name:@"AVPlayerItemBecameCurrentNotification" 
              object:nil]; 

を今(と私は、私はここに卵を吸うためにあなたを教えています実現 - 私の謝罪をこれだけの完全性のためです。)あなたがavPlayerItemBecameCurrentを必要とする:

-(void)avPlayerItemBecameCurrent:(NSNotification*)notification 
{ 
    // Your code goes here to stop your native AVPlayer from playing. 
} 

警告 - 私はこれをテストしていませんが、うまくいくはずです。

(これを書いて、もう少し周りを掘った後、私はこのDetecting and intercepting video playback in UIWebViewを見つけた)

関連する問題