在iphone中使用AudioQueue来实现音频播放功能时最主要的步骤
来源:互联网 发布:ibeacon 三角定位算法 编辑:程序博客网 时间:2024/05/29 12:33
AudioQueue是Mac OS X与iPhone中提供录音、播放功能的高级框架,比AudioUnit等框架更方便,而且不要求掌握更多专门的知识。
从AudioQueue的名称就可以看出,AudioQueue框架以队列的形式处理音频数据。因此使用时需要给队列分配缓存空间,由回调(Callback)函数完成向队列缓存读写音频数据的功能。另外,AudioQueue是AudioToolbox框架的一部分,使用前需要将AudioToolbox框架导入进来。
使用AudioQueue来实现音频播放功能时最主要的步骤,可以更简练的归纳如下。
1.
2.
3.
4.
5.
6.
以下是贯彻上述六个主要步骤的代码实例,只需要向[play:]中传入音频文件的路径就可以开始音频播放。稍加修改可以直接应用到自己的程序中。
Source
#import <Foundation/Foundation.h>
#import <AudioToolbox/AudioToolbox.h>
#import <AudioToolbox/AudioFile.h>
#define NUM_BUFFERS 3
@interface AudioPlayer : NSObject {
}
//定义队列为实例属性
@property AudioQueueRef queue;
//播放方法定义
- (void) play:(CFURLRef) path;
//定义缓存数据读取方法
- (void) audioQueueOutputWithQueu
//定义回调(Callback)函数
static void BufferCallback(void *inUserData, AudioQueueRef inAQ,
//定义包数据的读取方法
- (UInt32)readPacketsIntoBuffer:(AudioQueueBufferRef)buffer;
@end
Source Audioplay.m
static UInt32 gBufferSizeBytes = 0x10000;
@implementation AudioPlayer
@synthesize queue;
//
static void BufferCallback(void *inUserData, AudioQueueRef inAQ,
}
//初始化方法(为NSObject中定义的初始化方法)
- (id) init {
}
//缓存数据读取方法的实现
- (void) audioQueueOutputWithQueu
}
//音频播放方法的实现
-(void) play:(CFURLRef) path {
}
- (UInt32)readPacketsIntoBuffer:(AudioQueueBufferRef)buffer {
}
@end
- 在iphone中使用AudioQueue来实现音频播放功能时最主要的步骤
- AudioQueue来实现音频播放功能时最主要的步骤
- AudioQueue来实现音频播放功能时最主要的步骤
- ios开发之使用AudioQueue进行音频的播放
- ios 编程: ipad 和 iphone开发中使用 UIWebView 来播放视频的时候,在页面切换时 停止播放
- ios 编程: ipad 和 iphone开发中使用 UIWebView 来播放视频的时候,在页面切换时 停止播放
- iOS音频播放之AudioQueue(三):网络流媒体的播放
- iOS音频播放之AudioQueue(终结篇):缓存系统的实现
- iOS音频播放 (五):AudioQueue
- iOS音频播放 (五):AudioQueue
- iOS音频播放 (五):AudioQueue
- iOS音频播放 (五):AudioQueue
- iOS音频播放 (五):AudioQueue
- iOS音频播放之AudioQueue(二):本地音乐的时长,进度和Seek
- Android中使用SoundPool来播放音频
- iphone利用AudioQueue播放音频文件
- 通过脚本来实现音频的播放
- iPhone中使用AudioQueue时锁屏和插入拔出耳机的处理
- Struts 源码深度解析
- fastcgi与cgi的区别
- Android Alertdialog对话框点击消失?
- LIST输出自定义状态
- 使用commons email发送邮件
- 在iphone中使用AudioQueue来实现音频播放功能时最主要的步骤
- 自制能使用U盘引导的程序(一)
- Java 去掉字符串中的重复数据
- div的隐藏和显示用于小块的切换
- 【91cxz】水中&&小提琴xp主题_8.8
- Struts1.3源代码学习总结
- android在Service中弹出Dialog对话框,即全局性对话框
- gitweb
- C语言简单摘要