iPhone应用轻松使用AVAudioPlayer音频播放是本文要介绍的内容,iPhoneSDK中的AVFoundation框架包括的AVAudioPlayer是一个容易使用而且功能强大,基于Object-c的播放音频文件播放器。本教程展示了怎样使用AVAudioPlayer。本教程将建立一个简单的程序,它能够循环播放一段mp3音频文件。

源代码/Guithub

教程的源代码在GitHub上。你可以从仓库中克隆或直接下载zip文件。

创建项目

Launch Xcode and create a new View-Based iPhone application called AudioPlayer:

启动Xcode并创建一个“View-Based iPhone application”项目,取名为AudioPlayer:

1.从Xcode菜单选择“File > New Project …”

2.从“iPhone OS > Application”部分选择“View-based Application”,然后按“Choose…”

3.将项目命名为“AudioPlayer”并按“Save”

添加AVFoundation框架

为使用SDK的AVAudioPlayer类,我们需要将AVFoundation框架加入项目:

1.在项目的“Groups & Files”面板上,展开“Targets”

2.Control+点击或右击AudioPlayer

3.选择“Add > Existing Frameworks…”

4.点击Linked Libraries下左下方的+按钮

5.选择“AVFoundation Framework“并按Add

6.“AVFoundation framewoks”将出现在“Linked Libraries”下,关闭窗口

下面,我们将引入AVFoundation的头文件

1.展开项目“Group & Files”面板下AudioPlayer项目

2.打开Classes文件夹

3.选取AudioPlayerViewController.h进行编辑

4.更改文件。更改以下粗体字部分:

#import

#import

@interface AudioPlayerViewController :  UIViewController

{

AVAudioPlayer  *audioPlayer;

}

@end

添加音频文件

我们需要一段音频文件来进行播放。文件为audiofie.mp3。我们将其加入项目中:

按Control再左击或右击项目的“Group & Files”面板中的“Resources”文件夹

从上下文菜单中选取“Add > Existing Files…”

找到并选择要导入的音频文件,按“Add”

(有必要的话)选定“Copy items into destination group’s folder”方框并按“Add”

开始播放音频

我们在ViewDidLoad中启动音频播放:

1.解除ViewDidLoad方法的注解

2.更改如下,见粗体部分:

- (void)viewDidLoad

[super  viewDidLoad];

NSURL  *url= [NSURL fileURLWithPath:[NSString

stringWithFormat:@"%@/audiofile.mp3",  [[NSBundle mainBundle]  resourcePath]]];

NSError  *error;

audioPlayer= [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];

audioPlayer.numberOfLoops= -1;

if  (audioPlayer== nil)

NSLog([error  description]);

else

[audioPlayer  play];

AVAudioPlayer是通过URL初始化的,所以我们首先要创立一个指向资源文件夹中音频文件的URL。将音频播放器的numberOfLoops属性设为负数使得播放无限循环。配置好音频播放器后,我们向播放器对象发送播放消息来启动播放。

记住在dealloc方法中释放audioPlayer。改变见粗体部分:

- (void)dealloc

[audioPlayer  release];

[super  dealloc];

}

更多功能

你可以调节播放器音量,查看/设定播放的时间,暂停或停止播放:

audioPlayer.volume=0.5; // 0.0 - no  volume; 1.0 full volume

NSLog(@"%f seconds played so  far", audioPlayer.currentTime);

audioPlayer.currentTime=10; // jump to  the 10 second mark

[audioPlayer pause];

[audioPlayer stop]; // Does not reset currentTime; sending play resumes

最后,你还可以实现AVAudioPlayerDelegate协议,比如说,在音频播放结束时得到通知,这样你有可能移动到播放列表的下一首歌。

小结:iPhone应用轻松使用AVAudioPlayer音频播放的内容介绍完了,希望本文对你有所帮助。

【编辑推荐】

【责任编辑:李程站 TEL:(010)68476606】

点赞 0

iphone html5 音频播放器,iPhone应用轻松使用AVAudioPlayer音频播放相关推荐

  1. html音乐唱片自动转,HTML5音乐播放器(四):播放列表与播放方式

    发现播放列表和播放方式切换两个功能是连在一起的,单独一个拿出来说不太合适,所以就都一块弄完了.废话不多说,进入主题,功能的逻辑我是这么设计的: 把整个歌曲文件的信息都写在 json 文件里,获取并生成 ...

  2. HTML5音乐播放器(四):播放列表与播放方式

    2019独角兽企业重金招聘Python工程师标准>>> 发现播放列表和播放方式切换两个功能是连在一起的,单独一个拿出来说不太合适,所以就都一块弄完了.废话不多说,进入主题,功能的逻辑 ...

  3. 开发个好的RTMP播放器到底难在哪里?RTMP播放器对标和考察指标

    好多开发者提到,RTMP播放器,不知道有哪些对标和考察指标,以下大概聊聊我们的一点经验,感兴趣的,可以关注 github: 1. 低延迟:大多数RTMP的播放都面向直播场景,如果延迟过大,严重影响体验 ...

  4. easyplayerpro 使用说明_H265网页播放器EasyPlayerPro-Win如何通过配置文件实现自动播放等功能?...

    原标题:H265网页播放器EasyPlayerPro-Win如何通过配置文件实现自动播放等功能? 由于TSINGSEE青犀视频H265播放器EasyPlayer系列项目的开放性,关于EasyPlaye ...

  5. Android 11.0 任务栏中清除掉播放器的进程,状态栏仍有音乐播放器状态问题的解决

    1.概述 在11.0的rom定制化开发中,在点击系统自带的播放器以后,播放音乐的时候,在最近任务栏recents列表中,点击全部清除,发现音乐播放器还在播放音乐,导致出现bug,完整的 解决方法,肯定 ...

  6. android音乐播放器的开发与设计,Android音乐播放器的设计与实现

    内容简介: Android音乐播放器的设计与实现,毕业论文,共21页,7729字. 摘要:本文主要介绍了一个基于Andriod的音乐播放器的设计与实现.主要包括可行性分析,需求分析,App功能设计及实 ...

  7. HTML5播放器杂音,怎么消除噪音 视音频消除噪音方法【图文】

    噪音大家应该都知道吧!我们的生活之中噪音的出现是不可避免的,噪音的发生源非常地多,电视剧大家都看过吧!在电视剧里没有一点儿的噪音,大家难道不好奇吗?其实人们在录制电视剧的时候是有一些杂音的,经过技术的 ...

  8. html音乐播放器标签,打造属于自己的音乐播放器 HTML5之audio标签

    我的音乐播放器 HTML5中增加了Audio和Video标签,这两个标签的用法非常相似.功能却是相当强大,我们先来看一下Audio标签各个浏览器的支持情况.这里用的依然是Can I Use这个在线网站 ...

  9. html5视频播放器隐藏控制,HTML5 video标签(播放器)学习笔记(二):播放控制

    上一篇介绍了html5标签video(播放器)初始化需要做的一些工作,如何简单快速使用html5的播放器,本文将重点介绍如何用JS来操作video标签,也就是如何对video做一些简单基本的操作,包括 ...

最新文章

  1. android studio dump java heap_Android Studio 3.0 Memory Profiler使用
  2. Nginx版本无缝升级
  3. SDNU 1171.合并果子(区间dp)
  4. js进阶 12-5 jquery中表单事件如何使用
  5. TensorFlow保存和载入训练模型
  6. 对对象类型和调用方法属性进行存储以提升反射性能
  7. A*算法 带cocos2d-x例子 a*寻路算法
  8. 基于STM32单片机电阻电容电感检测仪设计
  9. Arduino Uno 学习第零课,Arduino认识
  10. 小程序 40163_安卓微信登入codebeenused,error40163
  11. 数据预处理——样本分布(正态分布、偏态分布)
  12. 中国设备工程杂志中国设备工程杂志社中国设备工程编辑部2022年第18期目录
  13. 为什么c语言加法错误,分数的加减法——C语言初学者代码中的常见错误与瑕疵(12)...
  14. darknet 框架 安装编译
  15. 苹果开发者账号和证书那些事
  16. 2021SC@SDUSC(dolphinscheduler- common3)
  17. R语言修改下载安装包install.package的默认存储位置
  18. uvalive 4997 ABCD Tiles
  19. 电源12V稳压5V MP2359从数据手册到布线 经验分享
  20. 高考出路面面观,落榜学子必看

热门文章

  1. python100day - 07day-集合、字符串和字符
  2. 宋体风险受益无穷的三十条职场语录
  3. 自定义error、北京污染物数据处理、可视化
  4. linux glog 0.50版本 设置交叉编译器生成静态库
  5. position:absolute实现水平居中
  6. 百度api证件,票据识别
  7. 问卷调查设计攻略!这些原则步骤让你的结果更精准
  8. 沉降变形观测方案(转载)
  9. MySQL Version确认(版本确认)
  10. 【搜索-广搜】 迷宫的最短路径