2009-08-07 10 views
4

をAVAudioPlayerとMPMoviePlayerControllerを使用して、私はそれが可能であるバックグラウンドループ再生中に動画を再生すなわち同時にAVAudioPlayerMPMoviePlayerControllerを使用する必要があります。
bgミュージックループは、ムービーの再生を開始すると停止するので、bgミュージックループを停止してムービーを開始しようとしましたが、ムービーが停止するとbgループの再生を再開します。同時に

+0

これはAudioQueueを使用して行う必要がありますか?私はiPhoneが初めてで、AudioQueueのドキュメントを理解することは本当に難しいものです。 –

+0

私の間違いが止まって再生AVAudioPlayerは、ムービーの開始と停止がうまくいく前に動作しますが、AVAudioPlayerとMPMoviePlayerControllerを同時に使用することはできません。 –

答えて

1

現在のiPhone SDK(2.xおよび3.x)には、ムービーがMPMoviePlayerController APIで再生されている間にバックグラウンドオーディオを再生できないという制限があります。残念ながら、iPhone SDKでは現時点であなたが求めていることをすることはできません。

私はlogging an enhancement requestをAppleに提供し、SDKの将来のバージョンでこれを提供する予定です。

2

実際に3.xから達成可能です。私は以前、私のアプリケーションの1つでこれをやっていましたが、バックグランドやその他の新しいiOS機能とは何の関係もありませんでした。オーディオセッションを適切に設定するだけで済みます。オーディオプレーヤーとビデオプレーヤーの両方がアンビエントオーディオセッションを使用していることを確認した場合、それも可能です。

AVAudioPlayerを再生する前に、オーディオセッションのカテゴリをAVAudioSessionCategoryAmbientに設定してください。これは、システム全体の一般的なオーディオセッションです。これにより、他のサウンドをiPodアプリケーションのサウンドなどで再生することができます。

iOS 3.2以降のMPMoviePlayerControllerを使用している場合は、useApplicationAudioSessionNOに設定してください。これにより、他のサウンドも確実に再生されます。以前のバージョンのiOSではデフォルトです。

+1

ねえ、ありがとうございました。誰かがオーディオセッションカテゴリを設定する方法が不思議なら、これを使用してください。 '[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbientエラー:nil];' – NSRover