iPhone应用轻松使用AVAudioPlayer音频播放

移动开发 iOS
本篇内容展示了怎样使用AVAudioPlayer。本教程将建立一个简单的程序,它能够循环播放一段mp3音频文件。

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

源代码/Guithub

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

创建项目

  1. 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.更改文件。更改以下粗体字部分:

  1.  #import <UIKit/UIKit.h> 
  2. #import <AVFoundation/AVFoundation.h> 
  3.  
  4. @interface AudioPlayerViewController :  UIViewController   
  5. {  
  6.     AVAudioPlayer  *audioPlayer;  
  7. }  
  8. @end  

添加音频文件

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

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

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

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

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

开始播放音频

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

1.解除ViewDidLoad方法的注解

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

  1. - (void)viewDidLoad  
  2.  
  3.    [super  viewDidLoad];  
  4.  
  5.    NSURL  *url = [NSURL fileURLWithPath:[NSString    
  6.        stringWithFormat:@"%@/audiofile.mp3",  [[NSBundle mainBundle]  resourcePath]]];  
  7.    NSError  *error;  
  8.    audioPlayer  = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];  
  9.    audioPlayer.numberOfLoops  = -1;  
  10.    if  (audioPlayer == nil)  
  11.        NSLog([error  description]);  
  12.    else  
  13.         [audioPlayer  play];  

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

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

  1. - (void)dealloc   
  2.  
  3.    [audioPlayer  release];  
  4.    [super  dealloc];  
  5.  }  

更多功能

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

  1. audioPlayer.volume = 0.5; // 0.0 - no  volume; 1.0 full volume   
  2. NSLog(@"%f seconds played so  far", audioPlayer.currentTime);  
  3. audioPlayer.currentTime = 10; // jump to  the 10 second mark  
  4. [audioPlayer pause];  
  5. [audioPlayer stop]; // Does not reset currentTime; sending play resumes  

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

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

责任编辑:zhaolei 来源: 博客园
相关推荐

2011-07-27 09:50:31

iPhone AVAudioPla 音频

2011-08-08 18:19:09

iPhone音频播放

2011-08-17 14:57:31

iPhone应用视频播放

2011-07-08 20:32:57

iPhone midi

2011-05-18 15:50:26

UI设计iPhoneiOS

2011-06-13 16:22:49

Core AudioCocoa TouchiOS

2021-07-09 09:24:41

鸿蒙HarmonyOS应用

2012-12-24 14:48:14

ios

2013-04-08 09:46:23

iPhone开发音频资料

2011-04-18 11:00:34

使用音频BlackBerry

2011-08-10 15:58:58

iPhone视频

2011-08-09 14:42:07

iPhonePCM播放器

2011-08-09 11:36:41

iPhoneUIPickerVieDEMO

2018-12-17 11:00:11

LinuxSoundConver音频文件格式

2011-07-18 15:32:14

iPhone 录音 播放

2011-09-05 18:08:01

MTK音频播放器

2011-08-08 13:50:29

iPhone开发 NSOperatio 多线程

2011-08-10 16:08:02

iPhoneProtocol协议

2011-08-19 13:34:33

iPhone应用ABAddressBo

2011-08-09 13:22:31

iPhoneSqlite数据库
点赞
收藏

51CTO技术栈公众号