播放后台音频

1、申明后台模式播放

@property (nonatomic, strong) AVAudioSession *session;

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.session = [AVAudioSession sharedInstance];
    NSError *error;
    //申明后台模式播放
    [self.session setCategory:AVAudioSessionCategoryPlayback error:&error];
    if (error)
    {
        NSLog(@"Error setting audio session category: %@", error);
    }
    [self.session setActive:YES error:&error];
    if (error)
    {
        NSLog(@"Error activating audio session: %@", error);
    }
}
//使用户能够远程控制媒体播放器,通过耳机或者活动栏。
-(BOOL)canBecomeFirstResponder
{
    return YES;
}
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
    //注册远程控制事件
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self becomeFirstResponder];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [[UIApplication sharedApplication] endReceivingRemoteControlEvents];
    [self resignFirstResponder];
    [super viewWillDisappear:animated];
}
//接收和响应远程控制事件
- (void)remoteControlReceivedWithEvent: (UIEvent *) receivedEvent
{
    if (receivedEvent.type == UIEventTypeRemoteControl)
    {
        switch (receivedEvent.subtype)
        {
            //调用各自的动作方法实现事件的定向
            case UIEventSubtypeRemoteControlTogglePlayPause:
                [self togglePlay:self];
                break;

            case UIEventSubtypeRemoteControlPreviousTrack:
                [self goToPrevTrack:self];
                break;

            case UIEventSubtypeRemoteControlNextTrack:
                [self goToNextTrack:self];
                break;

            default:
                break;
        }
    }
}

2、实现播放器

@property (nonatomic, strong) AVPlayer *player;
@property (nonatomic, strong) NSMutableArray *playlist;
@property (nonatomic)NSInteger currentIndex;
- (void)viewDidLoad
{
    [super viewDidLoad];

        .
        .
        .

    self.playlist = [[NSMutableArray alloc] init];
    self.player = [[AVPlayer alloc] init];
}
时间: 2024-10-31 10:47:00

播放后台音频的相关文章

第一个Windows Phone 8 程序开发之后台音频播放

对于播客的音频应该是连续多个的列表,作为在后台连续播放.在网上搜了一下,通过wp8后台音频代理播放,而且例子都是静态的播放列表,不满足动态生成列表播放. 尝试着将播放列表对象声明为公有静态的,在外部对列表进行操作,发现这个静态的播放列表在agent里和我的操作类不是同一个引用,此方法行不通. 最后在 http://www.devdiv.com/forum.php?mod=redirect&goto=findpost&ptid=199381&pid=960706 找到了思路: 在wp

FFmpeg学习5:多线程播放视音频

在前面的学习中,视频和音频的播放是分开进行的.这主要是为了学习的方便,经过一段时间的学习,对FFmpeg的也有了一定的了解,本文就介绍了如何使用多线程同时播放音频和视频(未实现同步),并对前面的学习的代码进行了重构,便于后面的扩展.本文主要有以下几个方面的内容: 多线程播放视音频的整体流程 多线程队列 音频播放 视频播放 总结以及后续的计划 1. 整体流程 FFmpeg和SDL的初始化过程这里不再赘述.整个流程如下: 对于一个打开的视频文件(也就是取得其AVFormatContext),创建一个

用 Qt 的 QAudioOutput 类播放 WAV 音频文件

用 Qt 的 QAudioOutput 类播放 WAV 音频文件 最近有一个项目,需要同时控制 4 个声卡播放不同的声音,声音文件很简单就是没有任何压缩的 wav 文件. 如果只是播放 wav 文件,那么 Qt 里简单的 QSound 类是最适合的.但是 QSound 有一个很大的缺陷就是无法选择用哪个声卡.一番研究之后,决定用 QAudioOutput 来播放 WAV 音频文件. 网上也能找到几篇相关的文章,比如: http://blog.csdn.net/qyee16/article/det

vc++播放wav音频文件

播放wav音频文件的方式:1.从vc++资源里读取音频文件,然后播放2.从硬盘,找到指定路径的音频文件,然后播放 代码实现:方式1: LPCTSTR lpstrWav = NULL; // IDR_WAVE1 是资源里音频文件的名称 lpstrWav = MAKEINTRESOURCE(IDR_WAVE1); // playsound第二个参数是获得当前应用程序的模块句柄. // playsound第三个参数添加参数SND_RESOURCE,指明声音来至程序的资源文件里 ::PlaySound(

embed标签的使用(在网页中播放各种音频视频的插件的使用)

embed标签的使用(在网页中播放各种音频视频的插件的使用) 链接地址:http://blog.csdn.net/TomyGuan/archive/2006/11/10/1377807.aspx 播放器插件使用说明: 代码:< EMBED src="music.mid"autostart="true"loop="2"width="80"height="30"> src:音乐文件的路径及文件名:(

用 Qt 的 QAudioOutput 类播放 WAV 音频文件(使用了libsndfile外部库)

用 Qt 的 QAudioOutput 类播放 WAV 音频文件 最近有一个项目,需要同时控制 4 个声卡播放不同的声音,声音文件很简单就是没有任何压缩的 wav 文件. 如果只是播放 wav 文件,那么 Qt 里简单的 QSound 类是最适合的.但是 QSound 有一个很大的缺陷就是无法选择用哪个声卡.一番研究之后,决定用 QAudioOutput 来播放 WAV 音频文件. 网上也能找到几篇相关的文章,比如: http://blog.csdn.net/qyee16/article/det

使用WindowsAPI播放PCM音频

这一篇文章同上一篇<使用WindowsAPI获取录音音频>原理具有相似之处,不再详细介绍函数与结构体的参数 1. waveOutGetNumDevs 2. waveOutGetDevCaps 3. waveOutOpen 回调函数 void CALLBACK PlayCallback(HWAVEOUT hwaveout, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2); 4. waveOutPrepareHeader 5

使用WindowsAPI实现播放PCM音频的方法

这篇文章主要介绍了使用WindowsAPI实现播放PCM音频的方法,很实用的一个功能,需要的朋友可以参考下 本文介绍了使用WindowsAPI实现播放PCM音频的方法,同前面一篇使用WindowsAPI获取录音音频的方法原理具有相似之处,这里就不再详细介绍具体的函数与结构体的参数,相同的部分加以省略,只介绍主要的功能部分代码.如下所示: 1. waveOutGetNumDevs 2. waveOutGetDevCaps 3. waveOutOpen 回调函数: ? 1 void CALLBACK

工业串口触摸屏开发制作mp3播放器,单片机或PLC通过串口控制播放MP3音频方法

在工业控制系统中将音乐或语音MP3的美和工控结合在一起,给人以赏心悦目的感受.随着工业控制的发展,对工业控制的控制要求也越来越高,使得越来越多的控制部分不是指简单的现场控制,还需要增加音乐播放或语音提示,使得控制系统更加人性化. 这里介绍广州易显的工业串口触摸屏或者ARM工控机连接单片机或者PLC,使用工业串口触摸屏开发制作mp3的方法.跟电脑的播放器一样,具有播放,暂停,停止,控制播放进度,上一首,下一首等功能.可以在人机界面上控制播放MP3音乐或者语音提示.也可以使用单片机或PLC控制播放的