iOS开发音频播放基础——AVAudioPlayer的应用

简介:

iOS音频开发——AVAudioPlayer应用

AVAudioPlayer是系统提供给我们的一个音频播放类,在AVFoundation框架下,通过它,我们可以实现一个功能强大的音乐播放器。首先,在项目中我们需要导入AVFoundation这个框架。

140410_HfD6_2340880.png

一、AVAudioPlayer方法与属性详解

初始化方法有两种,通过音频的路径或者音频data数据初始化player对象

?
1
2
- (instancetype)initWithContentsOfURL:(NSURL *)url error:(NSError **)outError;
- (instancetype)initWithData:(NSData *)data error:(NSError **)outError;

注意:支持的音频格式有:AAC,ALAC,HE-AAC,iLBC,IMA4,MP3.


准备播放音频,返回值标志是否解析成功,是否可以播放。

?
1
- ( BOOL )prepareToPlay;


开始播放音频

?
1
- ( BOOL )play;


在一段时间间隔后播放

?
1
- ( BOOL )playAtTime:(NSTimeInterval) time ;


暂停播放,并且准备好继续播放

?
1
- ( void )pause;        


停止播放,不再准备好继续播放

?
1
- ( void )stop;         


获取是否正在播放

?
1
@property(readonly, getter=isPlaying)  BOOL  playing;


获取当前音频声道数

?
1
@property(readonly) NSUInteger numberOfChannels;


获取当前音频时长

?
1
@property(readonly) NSTimeInterval duration;


获取创建时的音频路径

?
1
@property(readonly) NSURL *url;


获取创建时的音频数据

?
1
@property(readonly) NSData *data;


设置声道偏移量,0为中心,-1为只有左声道,1为只有右声道

?
1
@property  float  pan;


设置音频音量,取值为0-1之间

?
1
@property  float  volume;


设置是否可以改变播放速度

?
1
@property  BOOL  enableRate;

注意:设置这个属性前必须先调用prepareToPlay这个方法。


设置播放速度,1为正常,0.5为一半速度,2.0为2倍速度

?
1
@property  float  rate;


设置当前播放的时间点

?
1
@property NSTimeInterval currentTime;


设置音频播放循环次数

?
1
@property NSInteger numberOfLoops;


获取音频设置字典

?
1
@property(readonly) NSDictionary *settings;


是否开启仪表计数功能

?
1
@property(getter=isMeteringEnabled)  BOOL  meteringEnabled;


更新仪表计数的值

?
1
- ( void )updateMeters;


获取指定声道音频峰值

?
1
- ( float )peakPowerForChannel:(NSUInteger)channelNumber;


获取指定声道音频平均值

?
1
- ( float )averagePowerForChannel:(NSUInteger)channelNumber;


二、AVAudioPlayerDelegate方法详解

音频播放结束后调用的函数

?
1
- ( void )audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:( BOOL )flag;


播放遇到错误时调用的函数

?
1
- ( void )audioPlayerDecodeErrorDidOccur:(AVAudioPlayer *)player error:(NSError *)error;

目录
相关文章
|
5天前
|
前端开发 Android开发 iOS开发
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
【4月更文挑战第30天】Flutter 框架实现跨平台移动应用,通过一致的 UI 渲染(Skia 引擎)、热重载功能和响应式框架提高开发效率和用户体验。然而,Android 和 iOS 的系统差异、渲染机制及编译过程影响性能。性能对比显示,iOS 可能因硬件优化提供更流畅体验,而 Android 更具灵活性和广泛硬件支持。开发者可采用代码、资源优化和特定平台优化策略,利用性能分析工具提升应用性能。
【Flutter前端技术开发专栏】Flutter在Android与iOS上的性能对比
|
5天前
|
存储 Swift iOS开发
使用Swift开发一个简单的iOS应用的详细步骤。
使用Swift开发iOS应用的步骤包括:创建Xcode项目,设计界面(Storyboard或代码),定义数据模型,实现业务逻辑,连接界面和逻辑,处理数据存储(如Core Data),添加网络请求(必要时),调试与测试,根据测试结果优化改进,最后提交至App Store或其它平台发布。
13 0
|
5天前
|
安全 Swift iOS开发
【Swift 开发专栏】Swift 与 UIKit:构建 iOS 应用界面
【4月更文挑战第30天】本文探讨了Swift和UIKit在构建iOS应用界面的关键技术和实践方法。Swift的简洁语法、类型安全和高效编程模型,加上与UIKit的紧密集成,使开发者能便捷地创建用户界面。UIKit提供视图、控制器、布局、动画和事件处理等功能,支持灵活的界面设计。实践中,遵循设计原则,合理组织视图层次,运用布局和动画,以及实现响应式设计,能提升界面质量和用户体验。文章通过登录、列表和详情界面的实际案例展示了Swift与UIKit的结合应用。
|
5天前
|
存储 安全 Swift
【Swift 开发专栏】使用 Swift 开发一个简单的 iOS 应用
【4月更文挑战第30天】本文介绍了使用 Swift 开发简单 iOS 待办事项应用的步骤。首先,阐述了 iOS 开发的吸引力及 Swift 语言的优势。接着,详细说明了应用的需求和设计,包括添加、查看和删除待办事项的功能。开发步骤包括创建项目、界面搭建、数据存储、功能实现,并提供了相关代码示例。最后,强调了实际开发中需注意的细节和优化,旨在帮助初学者掌握 Swift 和 iOS 开发基础。
|
12天前
|
搜索推荐 API iOS开发
利用SwiftUI构建动态iOS天气应用
【4月更文挑战第23天】 在本文中,我们将探讨如何使用SwiftUI框架实现一个动态的iOS天气应用程序。将重点介绍如何通过集成第三方天气API、设计响应式用户界面以及应用数据绑定技术来增强用户体验。我们的目标是创建一个能够根据当前位置实时更新天气信息的应用,并确保其界面简洁、易用且美观。
10 0
|
2月前
|
API 数据安全/隐私保护 iOS开发
利用uni-app 开发的iOS app 发布到App Store全流程
利用uni-app 开发的iOS app 发布到App Store全流程
95 3
|
4月前
|
存储 iOS开发
iOS 开发,如何进行应用的本地化(Localization)?
iOS 开发,如何进行应用的本地化(Localization)?
122 2
|
4月前
|
存储 数据建模 数据库
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
IOS开发数据存储:什么是 UserDefaults?有哪些替代方案?
42 0
|
4月前
|
安全 编译器 Swift
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
IOS开发基础知识: 对比 Swift 和 Objective-C 的优缺点。
100 2