2 mapmapm MapMapM 于 2013.04.28 14:43 提问

应用无法播放背景音频

需要应用能实现在隐藏后播放音频的效果。在按下home键后也能继续播放。

下面的代码只能在home键按两下后进行一些远程控制,背景中播放音频就不行。,我需要的是在应用隐藏背景模式下播放MP3格式的文件。

在info.plist文件中添加了选项。
需要处于背景模式的应用能播放音频。

- (void) setupAudioSession {    
AVAudioSession *audioSession = [AVAudioSession sharedInstance];    
 // Specify that this object is the delegate of the audio session, so that this object's endInterruption method will be invoked when needed.   
[audioSession setDelegate: self];    
// Assign the Playback category to the audio session.    
NSError *audioSessionError = nil;    
//[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];    
[audioSession setCategory: AVAudioSessionCategoryPlayback error: &audioSessionError];    
if (audioSessionError != nil) {    
    NSLog (@"Error setting audio session category.");
    return;
}    
// Activate the audio session
[audioSession setActive: YES  error: &audioSessionError];

if (audioSessionError != nil) {

    NSLog (@"Error activating audio session during initial setup.");
    return;
}
}    
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
[self becomeFirstResponder];
 }    
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[[UIApplication sharedApplication] endReceivingRemoteControlEvents];
[self resignFirstResponder];
 }    
- (BOOL)canBecomeFirstResponder {
return YES;
 }    
- (void)remoteControlReceivedWithEvent:(UIEvent *)event {
//if it is a remote control event handle it correctly
if (event.type == UIEventTypeRemoteControl) {
    if (event.subtype == UIEventSubtypeRemoteControlTogglePlayPause) {
        //[player play];

        [self playAction];
   // } else if (event.subtype == UIEventSubtypeRemoteControlPause) {
    //    [player pause];
    }  else if (event.subtype == UIEventSubtypeRemoteControlPreviousTrack) {
        [self rewButtonPressed];

    } else if (event.subtype == UIEventSubtypeRemoteControlNextTrack)
        [self ffwButtonPressed:nil];
}}

请高手指教一些,非常感谢!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
让所有正在播放音乐的播放器主动停止播放
转载于:点击打开链接 让所有正在播放音乐的播放器主动停止播放: 目前采用的方法有三种: 1.发送ACTION_AUDIO_BECOMING_NOISY广播 2.抢夺音频焦点 3.发送按键事件 --- input keyevent 127 (127为:media_pause) 只有酷我播放器最新版不行,现状是这样的: 1.方法一只有在耳机插入的情况下生效,且只生效一次,第二
iOS 继续播放或暂时其他app的背景音乐
问题:当我们自己开发的应用要使用AVAudioSession时,可能会中断其它应用的音乐播放,例如:QQ音乐,酷我音乐等? 解决方案:当我们自己开发的应用播放时,暂停其他应用的播放,当我们的应用播放完毕时,继续其他应用的播放,实现代码如下 #import "VLAudioSessionControl.h" #import @implementation VLAudioSes
Cocos2dx 3.10音频无法正常播放问题的解决之路
Cocos2dx 3.10突然遇到音频无法正常播放的问题,奋斗了整整5天,才解决了,这是否是Cocos2dx引擎本身的问题?还是音频本身的问题?
解决微信音频在手机端不能播放问题
微信音频在pc端可以播放,但在ios上为了节约流量 默认是不开启播放的1.页面加载完,即播放 // --创建页面监听,等待微信端页面加载完毕 触发音频播放 document.addEventListener('DOMContentLoaded', function () { function audioAutoPlay() { ...
解决在Android设备播放音频与其他应用重音的问题,并监听耳机的控制按钮
概述在安卓开发中免不了需要播放一点音乐了,音频了。但是这时候有别的应用正在播放,这时候就会出现重音的现象,完全影响用户体验,我们的项目就遇上了这样的尴尬,然后查找了一些文档,记录一下;管理音频焦点从谷歌开发了解到,这跟音频的焦点又关系,我们可以获取当前音频的焦点来解决问题; 有多个应用程序可能播放音频,重要的是要考虑他们应该如何交互。为了避免每个音乐应用程序同时播放,Android使用音频焦点来控
Android上传阿里云音频后IOS无法播放
最近做在手机上录音,然后上传阿里云,得到音频ULR时,发现在IOS上无法播放,找了两天,发现只要改一下录音时编码格式就行。 mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
iOS app如何在进入背景模式的时候依然播放音乐
点击打开链接
java播放背景音乐
最近忙于java课题设计,在做背景音乐这一功能时卡住了,后来查了很多资料,也问了CSDN上的学霸们,所谓功夫不负有心人,最终还是做出来了。原来是音频格式的问题,要用工具(百度音乐PC版)把mp3格式的音频转换成wav格式。具体代码如下: PlayMusic.java import java.applet.AudioClip; import java.net.MalformedURLExcept
android 之解决同时播放2个音频的方法
尽管某个时刻只有一个activity可以运行,Android却是一个多任务环境.这对使用音频的应用带来了特殊的挑战,因为只有一个音频输出而可能多个媒体都想用它.在Android2.2之前,没有内建的机制来处理这个问题,所以可能在某些情况下导致坏的用户体验.例如,当一个用户正在听音乐而另一个应用需要通知用户一些重要的事情时,用户可能由于音乐声音大而不能听的通知.从Android2.2开始,平台为应用
Android-MediaPlayer实现在线播放网络音频过程中的一些问题
昨天做了一天使用MediaPlayer播放音频,然并卵,完成不了需求,但无论怎样也算是有所收获。 我想要完成的效果是(1)边下载(缓存)边播放   (2)使用进度条记录下载和播放的进度。 出现的问题是 a.实现不了边下载边播放 b.使用进度条记录下载进度效果不理想。 先说一下边下载边播放实现不了的原因: 在MediaPlayer播放音频的时候分为若干个状态。实例化一个Med