- 浏览: 13632779 次
- 性别:
- 来自: 洛杉矶
文章分类
- 全部博客 (1994)
- Php / Pear / Mysql / Node.js (378)
- Javascript /Jquery / Bootstrap / Web (435)
- Phone / IOS / Objective-C / Swift (137)
- Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux (335)
- Perl / Koha / Ruby / Markdown (8)
- Java / Jsp (12)
- Python 2 / Wxpython (25)
- Codeigniter / CakePHP (32)
- Div / Css / XML / HTML5 (179)
- WP / Joomla! / Magento / Shopify / Drupal / Moodle / Zimbra (275)
- Apache / VPN / Software (31)
- AS3.0/2.0 / Flex / Flash (45)
- Smarty (6)
- SEO (24)
- Google / Facebook / Pinterest / SNS (80)
- Tools (22)
最新评论
-
1455975567:
xuezhongyu01 写道wocan23 写道我想问下那个 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
xuezhongyu01:
wocan23 写道我想问下那个111.1是怎么得来的我也看不 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
18335864773:
试试 pageoffice 在线打开 PDF 文件吧. pag ...
jquery在线预览PDF文件,打开PDF文件 -
青春依旧:
opacity: 0.5; 个人喜欢这种方式!关于其他css特 ...
css透明度的设置 (兼容所有浏览器) -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
搞定网页打印自动分页问题
1. AVFoundation
Build Phases => Link Binary With Libraies => + => AVFoundation.framework => add
firstviewcontroller.h
#import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> @interface FirstViewController : UIViewController { __weak IBOutlet UILabel *label; AVAudioPlayer *player; } - (IBAction)toplay:(id)sender; @end
firstviewcontroller.m
- (IBAction)toplay:(id)sender { NSURL *url = [NSURL fileURLWithPath:[NSString stringWithFormat:@"%@/test.mp3", [[NSBundle mainBundle] resourcePath]]]; NSError *error; player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error]; player.numberOfLoops = -1; [player play]; [label setText:@"Play ..."]; }
或者:
NSString *path = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"]; NSError *error; player = [[AVAudioPlayer alloc]initWithContentsOfURL:[[NSURL alloc]initFileURLWithPath:path]error:&error]; [player prepareToPlay]; player.numberOfLoops = -1; [player play];
test.mp3 拖放到 Supporting Files 文件夹。
播放,暂停和停止
[player play]; //播放 [player pause]; //暂停 [player stop]; //停止
更多功能:
1. 音量:
player.volume=0.8;//0.0~1.0之间
2. 循环次数
player.numberOfLoops = 3;//默认只播放一次 负数(-1)为无限循环
3.播放位置
player.currentTime = 15.0;//可以指定从任意位置开始播放
3.1 显示当前时间
NSLog(@"%f seconds played so far", player.currentTime);
4.声道数
NSUInteger channels = player.numberOfChannels;//只读属性
5.持续时间
NSTimeInterval duration = player.dueration;//获取采样的持续时间
6.仪表计数
player.meteringEnabled = YES;//开启仪表计数功能 [ player updateMeters];//更新仪表读数 //读取每个声道的平均电平和峰值电平,代表每个声道的分贝数,范围在-100~0之间。 for(int i = 0; i<player.numberOfChannels;i++){ float power = [player averagePowerForChannel:i]; float peak = [player peakPowerForChannel:i]; }
7. 初始化播放器
[player prepareToPlay];
8. 判断是否正在播放
[player isPlaying]
9、代理方法
加入播放出现异常,或者被更高级别的系统任务打断,我们的程序还没来得及收场就挂了,怎么办?不急,我们可以通过几个委托方法很好地处理所有的情形。
首先给player设置委托是必须的:
player.delegate = self;
- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer*)player successfully:(BOOL)flag{ //播放结束时执行的动作 } - (void)audioPlayerDecodeErrorDidOccur:(AVAudioPlayer*)player error:(NSError *)error{ //解码错误执行的动作 } - (void)audioPlayerBeginInteruption:(AVAudioPlayer*)player{ //处理中断的代码 } - (void)audioPlayerEndInteruption:(AVAudioPlayer*)player{ //处理中断结束的代码 }
参考:
http://blog.csdn.net/xys289187120/article/details/6595919
http://blog.csdn.net/iukey/article/details/7295962
视频:
http://www.youtube.com/watch?v=kCpw6iP90cY
2. AudioToolbox
Build Phases => Link Binary With Libraies => + => AudioToolbox.framework => add
firstviewcontroller.h
#import <UIKit/UIKit.h> #import <AudioToolbox/AudioToolbox.h> @interface FirstViewController : UIViewController { } - (IBAction)toplay:(id)sender; @end
firstviewcontroller.m
- (IBAction)toplay:(id)sender { CFBundleRef mainBundle = CFBundleGetMainBundle(); CFURLRef soundFileURLRef; soundFileURLRef = CFBundleCopyResourceURL(mainBundle, (CFStringRef) @"sound1", CFSTR ("wav"), NULL); UInt32 soundID; AudioServicesCreateSystemSoundID(soundFileURLRef, &soundID); AudioServicesPlaySystemSound(soundID); }
视频:
http://www.youtube.com/watch?v=lSJhYx28Krg&feature=youtu.be
- MsicPlayer.zip (28.8 KB)
- 下载次数: 35
发表评论
-
手机firebug查看网页代码 How to View Website Source Codes on iPad / iPhone
2016-04-26 02:41 1122You’re using your iPad to br ... -
Android模拟器genymotion的安装和使用
2016-03-18 01:16 2471Genymotion概述 Genymotion是一套完整的 ... -
编码之道:取个好名字很重要
2015-10-14 05:19 1119代码就是程序员的孩子,给“孩子”取个好听的名字很重 ... -
Genymotion - 强大好用高性能的 Android 模拟器 (在电脑流畅运行APK安卓软件游戏的利器)
2015-06-05 13:34 7323随着 Android 系统的应用和游戏越来越丰富,甚至有 ... -
收集几个移动平台浏览器的User-Agent
2014-07-23 02:33 2976List of all Mobile Browsers ... -
常用浏览器修改User-Agent的方法
2014-06-28 02:58 10905之前有介绍收集的几个移动平台浏览器的User-Agent,以 ... -
更简洁的方式修改Chrome的User Agent,轻松体验移动版网络
2014-06-28 02:53 6869国庆节在家宅着,使用3g上网卡上网,和在公司上网不一样的是 ... -
3个检测浏览器User-Agent信息的网站
2014-06-28 02:52 2498刚刚在收集各个移动平台浏览器的User-Agent(参见这 ... -
根据移动设备屏幕像素密度,给予不同分辨率的图片
2014-06-26 00:52 2909在出现iphone4之前的相当长的时间内,网站开发人员 ... -
视网膜New iPad与普通分辨率iPad页面的兼容处理
2014-06-26 00:44 1274一、这是篇经验分享 ... -
iOS8开发-Swift编程
2014-06-25 00:45 1829课时列表 章节1:第一个Swift应用 ... -
Swift中文教程(二十三) 高级运算符
2014-06-25 00:43 783除了基本操作符中所讲的运算符,Swift还有许多复杂的高级 ... -
Swift中文教程(二十二) 泛型
2014-06-25 00:35 1005泛型代码可以让你写出根据自我需求定义、适用于任何类型的,灵 ... -
Swift中文教程(二十一) 协议
2014-06-24 05:25 1013Protocol(协议)用于统一方法和属性的名称,而不实现任 ... -
Swift中文教程(二十) 扩展
2014-06-24 00:47 685扩展就是向一个已有的类、结构体或枚举类型添加新功能(fun ... -
Swift中文教程(十九) 类型嵌套
2014-06-24 00:44 886枚举类型常被用于实现特定类或结构体的功能。也能够在有多种变量 ... -
Swift中文教程(十八) 类型检查
2014-06-24 00:41 724类型检查是一种检查类实例的方式,并且或者也是让实例作为它的 ... -
Swift中文教程(十七) 可选链
2014-06-17 05:11 864可选链(Optional Chaining)是一种可以请求 ... -
Swift中文教程(十六) 自动引用计数
2014-06-17 05:05 1245Swift使用自动引用计数(ARC)来管理应用程序的内存使 ... -
Swift中文教程(十五) 析构
2014-06-17 04:57 997在一个类的实例被释放之前,析构函数会被调用。用关键字dei ...
相关推荐
iOS之AVAudioPlayer使用实例
IOS下使用AVAudioPlayer播放MP3(支持后台播放) XCode 4.6.3下编译测试运行通过,真机测试通过
AVAudioPlayer播放本地音频 很基本的一个demo
AVAudioPlayer类轻松实现音频播放,资源内已经对系统AVAudioPlayer做了C++类的封装,使用的时候直接调用接口即可
本实例实现了AVAudioPlayer播放mp3歌曲文件,实现了播放、暂停、继续操作,音乐音量控制、播放进度显示,同时监听来电打断事件
里我们要介绍的是AVAudio ToolBox框架中的AudioServicesPlaySystemSound函数创建的服务,特别适合用来制作铃声,下面就简单整理一下iOS中的音频服务和音频AVAudioPlayer音频播放器使用指南:
本例使用 AVAudioPlayer 组成数组,来实现播放不同音乐、系统提示音的效果;并通过block来执行播放前、播放结束、播放停止的效果,适应项目的需要。
对 AVPlayer 的封装,支持本地和远程音频的播放
主要介绍了iOS App中调用AVAudioPlayer播放音频文件的用法,AVAudioPlayer仅能播放本地文件而不能添加网络源,实例代码为Objective-C,需要的朋友可以参考下
AVAudioPlayer 的音频播放的界面搭建,功能实现。
AVAudioPlayer播放音乐,支持后台播放,参考iOS图形图像一书,自己添加了支持后台播放还有注释
利用AVAudioRecorder录音 利用AVAudioPlayer播放 AVAudioSession录音权限 简单的录音播放demo,类似微信的按下录音,松开录音完成,并播放。
我自己写的用AVAudioPlayer实现后台播放和远程控制、我自己写的用AVAudioPlayer实现后台播放和远程控制、我自己写的用AVAudioPlayer实现后台播放和远程控制
AVAudioPlayer.zip
利用AVAudioRecorder录音 利用AVAudioPlayer播放 AVAudioSession录音权限 简单的录音播放demo,类似微信的按下录音,松开录音完成,并播放。
(1) 离线播放:这里并不是指应用不联网,而是指播放本地音频文件,包括先下完完成音频文件再进行播放的情况,这种使用AVFoundation里的AVAudioPlayer可以满足 (2) 在线播放:使用AVFoundation的AVPlayer可以...
AudioPlayerSwift, 在 iOS,macOS 和tvOS应用程序中,AudioPlayer是一个用于播放音频的简单类 AudioPlayer AudioPlayer是一个在 iOS,macOS 和tvOS应用中播放音频的简单类。用法// Initializelet audioPlayer = ...
上一篇中总结了iOS中音效和音频播放的最基本使用方法,其中音频的播放控制是使用AVFoundation.framework框架中的AVAudioPlayer播放器对象来实现的,而这里音频的录制则是使用了同样框架下的一个叫AVAudioRecorder的...