播放结束后,将音量控制返回到iOS设备振铃器

Set*_*and 7 hardware volume audiosession ios avplayer

我有一个音频应用程序,它使用媒体播放音频会话类别来允许背景音频.初始化音频会话后,iOS设备上的硬件音量按钮将控制音频会话的音量.

一旦音频播放停止,我想将手机振铃器的控制权返回到硬件音量按钮,但我尝试通过停用音频会话来做到这一点并不成功.

以下是我初始化和激活音频会话的方法:

AudioSessionInitialize(NULL, NULL, interruptionListenerCallback, self);

AudioSessionAddPropertyListener(kAudioSessionProperty_AudioRouteChange, 
                                audioRouteChangeListenerCallback, 
                                self);
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;

AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,
                        sizeof(sessionCategory),           
                        &sessionCategory);
Run Code Online (Sandbox Code Playgroud)

以下是我尝试停用音频会话并将iOS设备的振铃控制权返回到硬件音量控件的方法:

AudioSessionSetActive(false);
Run Code Online (Sandbox Code Playgroud)

我知道至少有一个应用程序就是这样(Audible.com的iOS应用程序).有谁知道我可能做错了什么?

tru*_*cks 0

在苹果文档中,我认为您必须实际删除侦听器。

查找:AudioSessionRemovePropertyListenerWithUserData

http://developer.apple.com/library/ios/#documentation/AudioToolbox/Reference/AudioSessionServicesReference/Reference/reference.html