在xcode中手动添加frameWork。

#import "MusicViewController.h"

#import <AVFoundation/AVFoundation.h>

#import <AudioToolbox/AudioToolbox.h>

@implementation MusicViewController

@synthesize start;

@synthesize pause;

@synthesize restart;

@synthesize BT1;

@synthesize player;

-(IBAction)tostart:(id)sender{

[player play];   //播放

AudioSessionSetActive (true);

}

-(IBAction )topause:(id)sender{

[self.player pause];

AudioSessionSetActive (false);//要引入tool包才行,不然报错

}

- (void)dealloc

{

[BT1 release];

[super dealloc];

}

- (void)didReceiveMemoryWarning

{

// Releases the view if it doesn't have a superview.

[super didReceiveMemoryWarning];

// Release any cached data, images, etc that aren't in use.

}

#pragma mark - View lifecycle

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.

- (void)viewDidLoad

{

NSString * musicFilePath = [[NSBundle mainBundle] pathForResource:@"audio" ofType:@"mp3"];      //创建音乐文件路径

NSURL * musicURL= [[NSURL alloc] initFileURLWithPath:musicFilePath];

AVAudioPlayer * thePlayer  = [[AVAudioPlayer alloc] initWithContentsOfURL:musicURL error:nil];

//创建播放器

self.player = thePlayer;    //赋值给自己定义的类变量

[musicURL release];

[thePlayer release];

[player setVolume:1];   //设置音量大小0-1之间

player.numberOfLoops = -1;//设置音乐播放次数  -1为一直循环

[super viewDidLoad];

}

- (void)viewDidUnload //内存警告时才会释放,当前的viewController即使出现内存警告,也不会unload

{

[self setBT1:nil];

[super viewDidUnload];

// Release any retained subviews of the main view.

// e.g. self.myOutlet = nil;

}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

// Return YES for supported orientations

return (interfaceOrientation == UIInterfaceOrientationPortrait);

}

@end

------------------------------------------------------------------

运行出来效果(这个就是你在IB里面以绑定事件就行)

PS:这里有几个问题需要说明以下

1. 这个[player play] 和【player pause】 时AVAudioPlayer自带的方法,默认情况下你暂停后,再play他会接着你刚才那个继续放,原因时这个play再这个view没有被dealloc之前 ,对象一直没有被销毁。

2.使用slider 当音控调教装置

代码很简单

-(IBAction) volumeChange:(id) sender{

self.player.volume = volumebar.value;

}

/

 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. @interface AudioPlayerViewController :  UIViewController
  4. {
  5. AVAudioPlayer  *audioPlayer;
  6. }
  7. @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. [super  viewDidLoad];
  3. NSURL  *url = [NSURL fileURLWithPath:[NSString
  4. stringWithFormat:@"%@/audiofile.mp3",  [[NSBundle mainBundle]  resourcePath]]];
  5. NSError  *error;
  6. audioPlayer  = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
  7. audioPlayer.numberOfLoops  = -1;
  8. if  (audioPlayer == nil)
  9. NSLog([error  description]);
  10. else
  11. [audioPlayer  play];

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

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

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

  更多功能

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

  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协议,比如说,在音频播放结束时得到通知,这样你有可能移动到播放列表的下一首歌  。

然后自己把事件一绑定就行

/

另一篇更详细的文章,见:http://www.oschina.net/question/213217_40638

【转】AVAudioPlayer播放音乐,最清晰明了相关推荐

  1. iOS8 用AVAudioPlayer播放音乐(Swift)

    AVAudioPlayer 类提供了播放音频文件的功能,在本次教程中,我们将对一个音乐文件进行播放暂停和停止操作,此外还会显示标题和播放时间.本次教程使用iOS8和Xcod6.3.1 打开Xcode创 ...

  2. 音乐平台项目的几个问题总结(头像裁剪以及跨页面播放音乐)

    关于头像裁剪 1.上传图片的裁剪,并没有采用后端裁剪,而采用前端裁剪,基于cropbox进行了修改 编码使用一个隐藏的input框存放 存放到数据库 2.本来想在后端解析base64编码重新生成文件, ...

  3. mciSendString函数简介(播放音乐以及录音相关操作)

    函数功能:播放多媒体音乐,视频等 mciSendString是用来播放多媒体文件的API指令,可以播放MPEG,AVI,WAV,MP3,等等.这个函数有自己的mci指令,可以通过不同的指令实现不同的功 ...

  4. IOS 后台运行 播放音乐

    iOS 4开始引入的multitask,我们可以实现像ipod程序那样在后台播放音频了.如果音频操作是用苹果官方的AVFoundation.framework实现,像用AvAudioPlayer,Av ...

  5. IOS 后台执行 播放音乐

    iOS 4開始引入的multitask.我们能够实现像ipod程序那样在后台播放音频了. 假设音频操作是用苹果官方的AVFoundation.framework实现.像用AvAudioPlayer.A ...

  6. iOS播放音乐与播放系统声音

    相同点: 都可以播放声音 不同点: 播放系统声音: 时间较短,不能暂停或者停止 播放音乐: 可播放时间较长的音乐,歌曲等. 可以暂停,停止. 代码块:播放系统声音  (大体分为四步) #import ...

  7. 入门C语言第三话:数组之实战篇——扫雷(进阶版——图形化界面,递归展开,播放音乐与音效,标记取消雷,记录雷的个数,鼠标点击,文末附有完整代码)

    文章目录 前言 每日鸡汤 基本思路 衔接基础班扫雷 准备阶段 正文 一.雷盘信息的存储 1.设置雷盘11*11与初始化 2.放置雷 3.放置雷周围的信息 二.图形化界面 1.创建与初始化窗口 2.加载 ...

  8. iPhone开发播放音乐与按钮声音

    1.背景音乐播放,支持mp3格式 循环播放长音乐. 这种播放音乐的方式导入框架#import <AVFoundation/AVFoundation.h>: NSString *musicF ...

  9. iPhone播放音乐

    iPhone播放音乐 今天我们简要介绍如何在iPhone中播放音乐: 强烈建议你参考官方文档(需要登录): http://developer.apple.com/library/ios/#docume ...

最新文章

  1. ARM下的原子操作实现原理
  2. PTA 1002 Business (35分)
  3. 非线性回归模型(part3)--K近邻
  4. 网页中竖的目录怎么改成横的_怎么学习手绘插画?小白也能入门哦
  5. linux安装mongo卸载mongo,CentOS7安装及卸载MongoDB.md
  6. Stanford CS230深度学习(七)RNN和LSTM
  7. 5.2自动扫描及装配数据
  8. ggplot2学习笔记系列之利用ggplot2绘制误差棒及显著性标记
  9. 穷人和富人的距离0.05厘米
  10. GitHub中国区前100名到底是什么样的人
  11. 为什么投资旅游景区赚钱难?怎样让景区快速盈利?
  12. 在经历了6个月的学习后,我终于上架了自己的第一款APP---酷课堂iOS群问答精华整理(201807期)
  13. esp8266 nvs应用
  14. 小白学react之页面BaseLayout框架及微信的坑
  15. 缓冲区溢出基础实践(二)——ROP 与 hijack GOT
  16. 用户界面测试(来源于百度百科)
  17. IntelliJ IDEA中的神仙插件 写代码必备
  18. 链路捆绑与端口聚合原理与实验结合理解小白看了都秒懂(华为ensp模拟器)不懂不可能的
  19. L1-001 ~ L1-005
  20. mysql8.0.17下载教程_Mysql8.0.17安装教程【推荐】

热门文章

  1. Spring Cloud第十篇:高可用的服务注册中心
  2. 最新OCR开源神器来了!
  3. 风控算法干货交流来了!
  4. 机器学习项目的备忘清单!
  5. 机器学习_周志华_问题汇总_第2周
  6. CVPR 2022|MPViT:用于密集预测的多路径视觉Transformer
  7. 十年AI谁“最能打”?AI 2000榜单:何恺明最佳论文“刷”状元,谷歌机构排名第一...
  8. 10个问题看透Transformer
  9. 一文提升你对深度学习分布式训练的整体认知!
  10. Transformer, BERT, ALBERT, XLNet全面解析(ALBERT第一作者亲自讲解)