問題なく動作しているように見える OnAudioFocusChange メソッドを実装しています。たとえば、ユーザーが YouTube ビデオの再生を開始するたびに、このメソッドが呼び出され、アプリで再生中の AudioTrack を一時停止します。
ただし、同じ AudioTrack が再生されていて、オーディオを使用する特定の Web 要素と思われるものをユーザーがトリガーすると、OnAudioFocusChange メソッドはまったく呼び出されません。
私が使用しているコードは次のとおりです。
OnAudioFocusChangeListener afChangeListener = new OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {
Log.d(LOG_TAG, "Called!");
if(focusChange == AudioManager.AUDIOFOCUS_LOSS){
running = false;
}
}
};
YouTube アプリを開いて動画を再生すると、メソッドが呼び出されます。
Chrome を開いて、このページのようなビデオを見ようとすると: http://m.neogaf.com/showthread.php?t=706667
オーディオがオーバーラップし、メソッドが呼び出されません。
それで、そのようなオーディオ要素からのオーディオを検出して、AudioTrack を一時停止してオーディオのオーバーラップを避ける方法はありますか?