1

私はかなり長い間これを機能させようとしてきました:

私のアプリには、UIWebView 内から Youtube のビデオを再生する可能性があります。ユーザーは、これに AirPlay を使用することができます。AirPlay がオンになっていると、デバイスがスリープ状態になる可能性があり、通常はその直後にビデオの再生が停止します。他の投稿でアドバイスされているように、AVAudioSessionカテゴリをカテゴリに設定するPlaybackと機能します-デバイスのディスプレイがスリープ状態になってもAirPlayは続行します.

ただし、これには副作用があります。バックグラウンドで音楽の再生がオンになっているときにユーザーがアプリを起動した場合、アプリのオーディオ セッション カテゴリを [再生] に設定すると、音楽の再生が停止し、これは間違いなく迷惑です。

理想的には、アプリがアクティブ化されたときではなく、ビデオの再生が開始されたときに AVAudioSession カテゴリを設定したいのですが、これを決定するための中央または UIWebview 通知/デリゲート メソッドを見たことがありません。

UIWebviewでホストされているビデオ プレーヤーが常にフル スクリーン モーダルをロードするため、特定できる iPhone 用のハックな回避策があります。しかし、私のアプリはユニバーサルで、iPad では動画がインラインで始まります。ビデオの再生がいつ行われるかを知る方法がわかりません。これはまさに、オーディオ カテゴリを再生に切り替える必要があるポイントです。実際には、ビデオが起動するまでのみバックグラウンド ミュージックを再生したいユーザーに役立ちます。

UIWebView 内のビデオ タグに Javascript イベントを追加することでだまされたくありません。

UIWebView ビデオ再生をトリガーする AVFoundation 通知を観察することは可能ですか? または、ビデオの再生が開始されるかどうかを判断する他の方法を知っている人はいますか?

4

0 に答える 0