首先,我理解这是一个类似的基于C的问题的副本,但没有得到回答。
我在我的应用中使用AVPlayer播放音频。我有它播放音频,正确设置其音频会话(我想,当我在我的应用程序中播放音轨时,播放图标出现在状态栏中,我的应用程序图标出现在多任务底座中的播放器传输控件旁边)。但是,当我按下主页按钮时,我无法继续在后台播放。音乐会逐渐淡出并停止。
我的info.plist中有以下密钥:
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>
在我处理播放的课程中,我有:
AVAudioSession audioSession = AVAudioSession.SharedInstance();
NSError error;
audioSession.SetCategory(AVAudioSession.CategoryPlayback.ToString(),out error);
audioSession.SetActive(true,out error);
UIApplication.SharedApplication.BeginReceivingRemoteControlEvents();
int taskID = 0;
taskID = UIApplication.SharedApplication.BeginBackgroundTask(delegate
{
if(taskID !=0)
{
UIApplication.SharedApplication.EndBackgroundTask(taskID);
taskID = 0;
}
});
PlaylistManager = new ApolloPlaylistManager();
AudioPlayer = new AVPlayer();
不确定我是否需要那个BeginBackgroundTask部分,但如果它在里面或外面它不起作用,我实际上非常确定我不需要它。任何提示都非常感激,因为我已经坚持了几天: - (
答案 0 :(得分:2)
好的,我觉得有点愚蠢。事实证明我的关键UIApplicationModes前面有一个空间。卫生署!
好吧,对于有类似问题的人,请确保您的info.plist看起来像这样
<key>UIBackgroundModes</key>
<array>
<string>audio</string>
</array>
并像这样设置你的播放代码(记住,这是Monotouch):
AVAudioSession audioSession = AVAudioSession.SharedInstance();
NSError error;
audioSession.SetCategory(AVAudioSession.CategoryPlayback.ToString(),out error);
audioSession.SetActive(true,out error);
UIApplication.SharedApplication.BeginReceivingRemoteControlEvents();
AudioPlayer = new AVPlayer();
答案 1 :(得分:1)
答案 2 :(得分:0)
我有一个类似的问题,其中一个视图正在录制,另一个视图播放该录制。录制只会有时(会产生5kb文件)是空的。没有显示错误消息。经过几个小时的挫折之后,我遇到了Dermot的上述帖子,并通过在AVAudioSession
之前添加AVAudioRecorder
来使其工作:
AVAudioSession audioSession = AVAudioSession.SharedInstance ();
audioSession.SetCategory (AVAudioSession.CategoryRecord,out error);
audioSession.SetActive(true, out error);
recorder = AVAudioRecorder.ToUrl (url, settings, out error);
相同的代码却将CategoryRecord
更改为CategoryPlayback
。
audioSession.SetCategory (AVAudioSession.CategoryPlayback,out error);
答案 3 :(得分:0)
我知道这是一个老问题,只是为了增加我的经验:
AVAudioSession.SharedInstance();在我的设备上没有工作,但创建一个新的实例AVAudioSession audiosession = new AVAudioSession();
在info.plist中,RequiredBackgroundModes值现在是“Audible content”而不是“Audio”
希望有所帮助。