IOS AVAudioPlayer 音频播放
IOS AVAudioPlayer 音频播放
要给工程中添加音频,首先要导入音频的框架 AVFoundation.framework
然后新建一个类继承于UIViewController, 我这里就叫FirstVC.
首先在 AppDelegate.m中初始化根视图
![](/assets/blank.gif)
1 // 2 // AppDelegate.m 3 // YinPinShiPin 4 // 5 // Created by VincentXue on 12-9-3. 6 // Copyright (c) 2012年 VincentXue. All rights reserved. 7 // 8 9 #import "AppDelegate.h" 10 #import "FirstVC.h" 11 @implementation AppDelegate 12 13 - (void)dealloc 14 { 15 [_window release]; 16 [super dealloc]; 17 } 18 19 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 20 { 21 self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 22 // Override point for customization after application launch. 23 24 FirstVC *firstVC = [[FirstVC alloc] init]; 25 self.window.rootViewController = firstVC; 26 [firstVC release]; 27 28 self.window.backgroundColor = [UIColor whiteColor]; 29 [self.window makeKeyAndVisible]; 30 return YES; 31 }
![](/assets/blank.gif)
然后在FirstVC.h中导入AVFoundation框架
![](/assets/blank.gif)
1 // 2 // FirstVC.h 3 // YinPinShiPin 4 // 5 // Created by VincentXue on 12-9-3. 6 // Copyright (c) 2012年 VincentXue. All rights reserved. 7 // 8 9 #import <UIKit/UIKit.h> 10 11 //要想使用封装好的音频类,导入框,导入类头文件,缺一不可; 12 #import <AVFoundation/AVFoundation.h> 13 14 @interface FirstVC : UIViewController<AVAudioPlayerDelegate> 15 { 16 AVAudioPlayer *avAudioPlayer; //播放器player 17 UIProgressView *progressV; //播放进度 18 UISlider *volumeSlider; //声音控制 19 NSTimer *timer; //监控音频播放进度 20 } 21 22 @end
![](/assets/blank.gif)
然后在FirstVC.m里的viewDidLoad方法里填写代码 你需要导入一个音频才可以播放 像添加图片一样,直接拖到工程里就可以了
![](/assets/blank.gif)
1 - (void)viewDidLoad 2 { 3 [super viewDidLoad]; 4 // Do any additional setup after loading the view. 5 //初始化三个button 6 UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 7 [button setFrame:CGRectMake(100, 100, 60, 40)]; 8 [button setTitle:@"Play" forState:UIControlStateNormal]; 9 [button addTarget:self action:@selector(play) forControlEvents:UIControlEventTouchUpInside]; 10 [self.view addSubview:button]; 11 12 UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 13 [button1 setFrame:CGRectMake(100, 150, 60, 40)]; 14 [button1 setTitle:@"pause" forState:UIControlStateNormal]; 15 [button1 addTarget:self action:@selector(pause) forControlEvents:UIControlEventTouchUpInside]; 16 [self.view addSubview:button1]; 17 18 UIButton *button2 = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 19 [button2 setFrame:CGRectMake(100, 200, 60, 40)]; 20 [button2 setTitle:@"stop" forState:UIControlStateNormal]; 21 [button2 addTarget:self action:@selector(stop) forControlEvents:UIControlEventTouchUpInside]; 22 [self.view addSubview:button2]; 23 24 //从budle路径下读取音频文件 轻音乐 - 萨克斯回家 这个文件名是你的歌曲名字,mp3是你的音频格式 25 NSString *string = [[NSBundle mainBundle] pathForResource:@"轻音乐 - 萨克斯回家" ofType:@"mp3"]; 26 //把音频文件转换成url格式 27 NSURL *url = [NSURL fileURLWithPath:string]; 28 //初始化音频类 并且添加播放文件 29 avAudioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil]; 30 //设置代理 31 avAudioPlayer.delegate = self; 32 33 //设置初始音量大小 34 // avAudioPlayer.volume = 1; 35 36 //设置音乐播放次数 -1为一直循环 37 avAudioPlayer.numberOfLoops = -1; 38 39 //预播放 40 [avAudioPlayer prepareToPlay]; 41 42 //初始化一个播放进度条 43 progressV = [[UIProgressView alloc] initWithFrame:CGRectMake(20, 50, 200, 20)]; 44 [self.view addSubview:progressV]; 45 [progressV release]; 46 47 //用NSTimer来监控音频播放进度 48 timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self 49 selector:@selector(playProgress) 50 userInfo:nil repeats:YES]; 51 //初始化音量控制 52 volumeSlider = [[UISlider alloc] initWithFrame:CGRectMake(20, 70, 200, 20)]; 53 [volumeSlider addTarget:self action:@selector(volumeChange) 54 forControlEvents:UIControlEventValueChanged]; 55 //设置最小音量 56 volumeSlider.minimumValue = 0.0f; 57 //设置最大音量 58 volumeSlider.maximumValue = 10.0f; 59 //初始化音量为多少 60 volumeSlider.value = 5.0f; 61 62 [self.view addSubview:volumeSlider]; 63 [volumeSlider release]; 64 65 //声音开关控件(静音) 66 UISwitch *swith = [[UISwitch alloc] initWithFrame:CGRectMake(100, 20, 60, 40)]; 67 [swith addTarget:self action:@selector(onOrOff:) forControlEvents:UIControlEventValueChanged]; 68 //默认状态为打开 69 swith.on = YES; 70 [self.view addSubview:swith]; 71 [swith release]; 72 }
![](/assets/blank.gif)
相应的自定义方法代码如下
![](/assets/blank.gif)
1 //播放 2 - (void)play 3 { 4 [avAudioPlayer play]; 5 } 6 //暂停 7 - (void)pause 8 { 9 [avAudioPlayer pause]; 10 } 11 //停止 12 - (void)stop 13 { 14 avAudioPlayer.currentTime = 0; //当前播放时间设置为0 15 [avAudioPlayer stop]; 16 } 17 //播放进度条 18 - (void)playProgress 19 { 20 //通过音频播放时长的百分比,给progressview进行赋值; 21 progressV.progress = avAudioPlayer.currentTime/avAudioPlayer.duration; 22 } 23 //声音开关(是否静音) 24 - (void)onOrOff:(UISwitch *)sender 25 { 26 avAudioPlayer.volume = sender.on; 27 } 28 29 //播放音量控制 30 - (void)volumeChange 31 { 32 avAudioPlayer.volume = volumeSlider.value; 33 } 34 35 //播放完成时调用的方法 (代理里的方法),需要设置代理才可以调用 36 - (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag 37 { 38 [timer invalidate]; //NSTimer暂停 invalidate 使...无效; 39 }
![](/assets/blank.gif)
最后别忘了释放内存
![](/assets/blank.gif)
1 - (void)dealloc 2 { 3 [avAudioPlayer release]; 4 [progressV release]; 5 [volumeSlider release]; 6 [timer release]; 7 [super dealloc]; 8 }
![](/assets/blank.gif)
当然,你也可以再定义一个UISlider来控制播放进度.
最后运行起来的就是这个样子
原文地址:http://www.cnblogs.com/VincentXue/archive/2012/09/03/2668729.html
IOS AVAudioPlayer 音频播放相关推荐
- iOS 9音频应用播放音频之iOS 9音频播放进度
iOS 9音频应用播放音频之iOS 9音频播放进度 iOS 9音频应用开发播放进度 音频文件在播放后经过了多久以及还有多久才可以播放完毕,想必是用户所关注的问题.为了解决这一问题,在很多的音乐播放器中 ...
- iphone html5 音频播放器,iPhone应用轻松使用AVAudioPlayer音频播放
iPhone应用轻松使用AVAudioPlayer音频播放是本文要介绍的内容,iPhoneSDK中的AVFoundation框架包括的AVAudioPlayer是一个容易使用而且功能强大,基于Obje ...
- ios中AVAudioPlayer音频播放器
IOS中有三种播放音频的方式:AVAudioPlayer.音频服务.音频队列. AVAudioPlayer在AVFoundation框架下,所以我们要导入AVFoundation.framework. ...
- 【iOS】音频播放之AVAudioPlayer,AVPlayer,AVQueuePlayer
前言 在婚语APP中,分别使用了AVAudioPlayer,AVPlayer,AVQueuePlayer来实现音频播放功能,下面以婚语的实际需求分别介绍它们的使用方法和区别. 需求1 档期备忘:用户新 ...
- AVAudioPlayer音频播放器-备用
IOS中有三种播放音频的方式:AVAudioPlayer.音频服务.音频队列. 此文主要讲AVAudioPlayer,其他两个请见相关文章. AVAudioPlayer在AVFoundation框架下 ...
- iOS开发--音频播放、录音、视频播放、拍照、视频录制
概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像 ...
- iOS后台音频播放及锁屏界面显示音频信息
iOS后台播放音乐及用户交互处理 后台播放是任何一个音频软件都支持的功能,在上一篇博客中,详细介绍了使用AVAudioPlayer播放音频的方法,这篇博客将对后台的处理做介绍,关于播放与设置音频的博客 ...
- 关于iOS网络音频播放的一些详解(使用AVPlayer播放网络音频)
在日常的iOS开发中,我们通常会遇到媒体播放的问题,XCode中已经为我们提供了功能非常强大的AVFoundation框架和MediaPlayer框架.其中AVFoundation框架中的AVAudi ...
- AVAudioPlayer音频播放
简述 AVAudioPlayer 是一个属于 AVFoundation.framework 的一个类,它的功能类似于一个功能强大的播放器,AVAudioPlayer 支持广泛的音频格式,主要是以下这些 ...
最新文章
- CloudHub概述
- 阿里巴巴 Service Mesh 落地的架构与挑战
- 如何让U盘支持大于4G的文件
- 重磅公开课推荐 | 如何搭建聊天机器人:技术架构剖析
- I.MX6ULL芯片介绍 —— 迅为
- weblogic命令行操作
- 从CUDA开始读OpenCL
- 强化学习《基于策略价值 - Actor-Critic》
- 计算几何之凸包_卷包裹算法
- SVDchapter14 机器学习之利用SVD简化数据
- 哈希表---开链法解决哈希冲突
- 中国二十五首必听的网络原创歌曲
- C语言2009选择题答案,全国2009年10月自学考试C加加程序设计试题
- PowerPivot——DAX(初识)
- zcmu之水题来一波~
- linux下如何进行system(“pause”)同等操作
- java中(person类)
- SQL中重复数据的查询与删除
- chromosome conformation capture:染色质构象捕获技术
- Hanselminutes播客153-Scott的妻子Mo采访Scott Hanselman
热门文章
- 后弹幕时代,bilibili能否走好下一个十年?
- Debian10安装python3
- java 环形缓存_shuffle 中环形缓冲区
- Tom和Jerry来了,Tom和Jerry走了——北漂18年(38)
- Oracle服务连接不上 ORA-12514 ORA-01034 ORA-27012
- 不重装修复系统并恢复windows用户配置文件,适用于window 11 WSA出错后的dll文件缺失、.net framework缺失或者其他类似系统恢复后尽可能想恢复用户配置的场景
- 讯飞星火认知大模型 VS CHATGPT3.5
- 调频无线话筒的电路图
- Azure云服务保留IP
- IDF 包罗万象 抓到一只苍蝇