2012-04-24 3 views
0

Я пробовал все:AVAudioPlayer фоновая задача не работает [IOS]

-setup info.plist Требуемые режимы фона: App воспроизводит звук;

-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

вы можете отправить мне свой код. Я работал над этим, и он работает правильно, во-вторых, вы протестировали его на устройстве или просто в симуляторе. В случае симулятора это не сработает. –

+0

Следуйте по этой ссылке http://stackoverflow.com/questions/10276096/cant-beginreceivingremotecontrolevents-in-ios/10278392#10278392. Если даже вы этого не получили, то, пожалуйста, напишите мне свой код, я его разрешу. Insha Allah, [email protected] –

ответ

1

Вы должны установить Audio Категория для воспроизведения:

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

Если после этого вы хотите, чтобы обеспечить смешивание аудио с другими приложениями, вы можете добавить эту опцию, просто убедитесь, что сделать это перед тем установив аудио сессия активна.

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

Теперь вы можете установить звуковой сеанс активен:

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

Этот ответ просто спас мой бекон! –

Смежные вопросы