2012-04-24 18 views
0

は私が試してみましたすべてを動作していないアプリケーションは、オーディオを再生します。AVAudioPlayerのバックグラウンドタスクは、[iOSの]

-setupプレーヤー:

[[AVAudioSession sharedInstance] setDelegate: self]; 

// allow app continue to play when the screen is locked 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback 
             error:nil]; 

UInt32 doSetProperty = 0; 
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryMixWithOthers, 
         sizeof (doSetProperty), 
         &doSetProperty 
         ); 

// Registers the audio route change listener callback function 
AudioSessionAddPropertyListener (
           kAudioSessionProperty_AudioRouteChange, 
           audioRouteChangeListenerCallback, 
           self 
           ); 

// Activates the audio session. 

NSError *activationError = nil; 
[[AVAudioSession sharedInstance] setActive: YES error: &activationError]; 

[appSoundPlayer prepareToPlay]; 
[appSoundPlayer setVolume: 1.0]; 
[appSoundPlayer setDelegate: self]; 
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 

私は何を忘れていますか?何か間違っていますか?

+0

あなたのコードは、私にメールすることができます。私はそれに取り組んだ、それは正常に動作している、2番目のことは、デバイスまたはシミュレータでそれをテストしたことです。シミュレータの場合は動作しません。 –

+0

このリンクに進むhttp://stackoverflow.com/questions/10276096/cant-beginreceivingremotecontrolevents-in-ios/10278392#10278392あなたがそれを持っていない場合でも、あなたのコードを私にメールしてください、私はそれを解決するinshaアッラー、[email protected] –

答えて

1

あなたが再生するオーディオカテゴリを設定する必要があります。

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&error]; 

あなたは他のアプリとの音声をミキシングできるようにしたい場合は、このオプションを追加することができ、ちょうど設定前にこのを行うようにしてくださいオーディオセッションをアクティブにします。

[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil]; 

今、あなたはアクティブにオーディオセッションを設定することができます。

[[AVAudioSession sharedInstance] setActive:YES error:&error]; 
+0

この答えはちょうど私のベーコンを救った! –

関連する問題