IOS音频2:之采用四种方式播放音频文件(二)AudioToolbox AVFoundation OpenAL AUDIO QUEUE(2014-10-17 16:07)

    从本章开始我们就开始制作一个音频播放器,一步步起,从零开始IOS多媒体的相关知识。在本章中,我们需要根据不同的音频播放器的应用场合制作四款播放器。为了保持知识点的连续性,我们使用统一的工程。在同一个工程中不断完善代码来实现多种方法的播放器的制作。另外我们采用与工程项目相同的步骤来学习,从一个完整的工程的角度出发来学习。包括任务需求分析、相关知识点介绍、源代码分析、项目工程建立、程序逻辑实现、最终结果测试。从各个方面了解IOS开发的流程。

任务需求分析

在正是开始制作一个音频播放器之前,我们先来回想一下,一个常用的音频播放器都有哪

些功能。可以播放各种格式的音频文件,实现暂停、快进快退、音量控制、播放次数控制、显示所播放音频文件的参数信息等功能。OK现在是不是对这个音频播放器有了一些了解呢?为了便于大家直观的了解我们任务需求,下面给出了这个音乐播放器的功能假想图。如图1所示。虽然不太美观(有待后续美工)但这个图却直观的反映出我们所要开发的功能,非常有利于我们对每一个控键功能的学习。现在我们来总结一下完成这个任务具体需要实现的哪些功能指标?

(1)可以播放系统声音、wav、mp3等音频格式文件。

(2)具有暂停、继续播放、停止、静音等功能。

(3)具有控制音量高低的功能,音量控制范围0-500%。

(4)具有实时显示播放进度的功能。

(5)具有音频拖动功能,可以在任意时间点开始播放。

(6)具有控制播放次数的功能。可以任意增加,减少播放次数以及无限循环播放功能。

(7)具有实时显示音频文件播放时间、声道、功率参数功能。

(8)每当播放结束的时候可以自动再次播放(与控制播放次数功能不同)。

(9)在simulator6.1下模拟运行。

这里有一点需要注意一下,为了让大家尽可能的方便调试demo,本书中所有工程都尽可能

的采用模拟器仿真的方式来实现。如果大家想在真机上运行,需要对代码进行一定的修改。


    通过上面的分析,我们已经很清楚了我们需要做什么,下面我们来看看,如果想完成这个

demo我们都需要具备哪些知识。

2.2 音频文件概述

首先我们需要思考一个问题?我们到底在播放什么?mp3wav pcm rmvb?我们首先来回答

一个问题:mp3是音频文件格式?还是数据编码方式?这可能会把你弄迷糊,不过没关系我们首先来了解下什么是音频文件格式、以及音频文件编码方式。

什么叫音频文件格式?

音频文件格式是一个容器,主要用来装载数据,容器可以装载mp3编码格式的音频,也可

以装载pcm格式的音频。常见的音频文件格式有:xx.wav xx.mp3 xx.caf等等。也就是说音频文件格式(即我们常说的后缀名)只是个载体,里面的具体内容要靠编码方式来决定。

什么叫音频编码方式?

数据的容器准备好了,那如何去组织这些数据关系到音频的编解码方式。常见的音频编解

码方法有:pcm、mp3、μ-law and a-law、AMR等等。打个比喻来说,文件格式好比装水的水桶,不同的文件格式对应不同的水桶。可能是木水桶,也可能是熟料水桶。而音频编解码方式对应着不同的液体,可能是白开水,也可能是可乐。

这里有个地方需要交代一下:我们通常所说的xx.mp3是指mp3文件类型的音频文件。而单

独说mp3的时候一般是指mp3的这种编解码方法。现在我们是不是可以很轻松的回答在这一小节之初我们提出的这个问题了呢?

除了以上提到的音频文件格式以及音频数据编解码格式之外,传输速率、采样速率、量化

位数也是音频文件中非常重要的三个参数。可以这样说没有这些参数我们就不知道到底如何去组织这些经过模拟信号转化过来的数字音频数据。

传输速率:即比特率。不同的场合下所使用的传输速率也不相同。例如当网络较为流畅时,

传输带宽较宽时,我们就可以采用较高的传输速率。表1给出了不同场景下的数据传输速率。


采样速率:根据奈奎斯特采样定律,采样速率至少要是原始音频信号的2倍。采样速率越

大,音频的保质效果越好。但他是在牺牲了数据存储空间作为代价的。不同的采样速率反映出不同的音频保质效果。表2给出了采样速率与使用环境的对应关系。


量化位数: 它是音频从模拟信号到数字信号质量的反映,量化位数越高音频文件的音质越

好。一般常用的有8位量化以及16位量化。8位量化的量化范围0-255(0x00-0xFF)16位量化的量化范围在(0-65535)(0x0000-0xFFFF)。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值