之前公司做的是音乐播放器,用到了AudioToolbox这个音频接口,总结下,希望对需要的朋友有帮助。AudioToolbox这个库是C的接口,偏向于底层,用于在线流媒体音乐的播放,可以调用该库的相关接口自己封装一个在线播放器类,不过也有一个开源的播放器AudioStreamer,是老外封装,有兴趣的朋友可以研究下。
其实IOS库中有两个可以播放在线音乐的播放器类,AVPlayer和MPMusicPlayerController
这两个做简单的播放还不错,但是如果要做专业的音乐播放项目,功能还不够强大,例如:边听边存、断点续传、播放事件等等都无法满足。一下是以前做的笔记,仅供参考
播放流程图:
数据结构及接口说明:
其实IOS库中有两个可以播放在线音乐的播放器类,AVPlayer和MPMusicPlayerController
这两个做简单的播放还不错,但是如果要做专业的音乐播放项目,功能还不够强大,例如:边听边存、断点续传、播放事件等等都无法满足。一下是以前做的笔记,仅供参考
播放流程图:
数据结构及接口说明:
• 数据类型 1.AudioFileStreamID 文件流 2.AudioQueueRef 播放队列 3.AudioStreamBasicDescription 格式化音频数据 4.AudioQueueBufferRef 数据缓冲 • 回调函数 1.AudioFileStream_PacketsProc 解析音频数据回调 2.AudioSessionInterruptionListener 音频会话被打断 3.AudioQueueOutputCallback 一个AudioQueueBufferRef播放完 • 主要函数 0.AudioSessionInitialize (NULL, NULL, AudioSessionInterruptionListener, self); 初始化音频会话 1.AudioFileStreamOpen( (void*)self, &AudioFileStreamPropertyListenerProc, &AudioFileStreamPacketsProc, 0, &audio_file_stream); 建立一个文件流AudioFileStreamID,传输解析的数据 2.AudioFileStreamParseBytes( audio_file_stream, datalen, [data bytes], kAudioFileStreamProperty_FileFormat); 解析音频数据 3.AudioQueueNewOutput(&audio_format, AudioQueueOutputCallback, (void*)self, [[NSRunLoop currentRunLoop] getCFRunLoop], kCFRunLoopCommonModes, 0, &audio_queue); 创建音频队列AudioQueueRef 4.AudioQueueAllocateBuffer(queue, [data length], &buffer); 创建音频缓冲数据AudioQueueBufferRef 5.AudioQueueEnqueueBuffer(queue, buffer, num_packets, packet_descriptions); 把缓冲数据排队加入到AudioQueueRef等待播放 6.AudioQueueStart(audio_queue, nil); 播放 7.AudioQueueStop(audio_queue, true); AudioQueuePause(audio_queue); 停止、暂停 • 断点续传 1。在http请求头中设置数据的请求范围,请求头中都是key-value成对 key:Range value:bytes=0-1000 [request setValue:range forHTTPHeaderField:@"Range"]; 可以实现,a.网络断开后再连接能继续从原来的断点下载 b.可以实现播放进度可随便拉动
发表评论
-
如何使用AV Foundation从摄像头将视频帧捕获为图像
2012-11-15 17:21 7453如果译错,感谢指出。 英文原文地址:https://d ... -
iOS单元测试
2012-11-05 11:37 916转自:http://www.cnblogs.com/ke ... -
Core Data数据持久化的使用
2012-10-30 21:31 1045CoreData 是ios中用来对数据做持久化的一个框架 ... -
ASIHTTPRequest缓存策略的设置
2012-10-30 17:23 3871ASIHTTPRequest 是一款强大的网络请求框架,该框架 ... -
【无限互联】xcode自定义类的模板
2012-10-23 19:37 1154翻译:http://www.bobmccune.com/ ... -
【无限互联】适配iOS6和iPhone5屏幕
2012-10-23 18:05 24731. iOS6的mo模拟器比较大,通过comman ... -
【无限互联】mac下配置svn服务器
2012-10-22 13:30 767在mac下配置svn服务器其实很简单,只需要简单的几句命令就可 ... -
【无限互联】iOS开发之多线程开发
2012-10-10 17:41 1233本节要点: 1.多线程的概念 2.掌握iOS中多线程 ... -
【无限互联】iOS开发block用法之UIAlertView控件的修改
2012-10-10 17:06 2682原始的UIAlertView的需要通过委托方法来实现按钮 ... -
Objective-C新特性
2012-09-05 14:38 701基于Xcode4.4(不完全独有)。1. 成员方法无需前置声明 ... -
iphone-NSDate日期处理
2012-08-31 16:25 1064NSDate存储的是世界标准时(UTC),输出时需要 ... -
iphone开发资源汇总
2012-08-31 16:16 1604如何用Facebook graphic api上传视 ... -
iOS-如何让xcode自动检查内存泄露
2012-08-31 16:05 1093在project-setting中找到 “Run Static ... -
UIScrollView的属性总结
2012-02-08 15:58 4429在滚动过程当中,其实是在修改原点坐标 当手指触摸后, scr ... -
iPhone开发之 ARC是什么
2012-01-17 16:58 1376相关链接:http://blog.csdn ... -
画图时 自己做的一小笔记
2012-01-07 21:02 9580 CGContextRef context = UIGra ... -
让Xcode 4.2生成的app支持旧版iOS设备(armv6)
2012-01-07 00:46 1333这几天遇到一个非常奇怪的问题,基于Xcode 4.2开发的ap ... -
5个开源库的JSON解析速度测试
2011-12-03 23:15 1457iOS5新增了JSON解析的API ... -
获取iOS设备当前ip地址
2011-11-17 23:16 1383第一种方法是用系统api的方式获取,如下 #include & ... -
Quartz 2D编程指南(2) - 图形上下文(Graphics Contexts)
2011-11-12 00:08 1447一个Graphics Context表示一 ...
相关推荐
《Matlab Image Processing Toolbox 学习笔记》 Matlab作为一款强大的数值计算和数据分析软件,其Image Processing Toolbox(图像处理工具箱)是进行图像处理、分析和可视化的必备工具。这个工具箱提供了丰富的函数...
matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接运行! matlab算法,毕设、课设程序,全部源码均已进行严格测试,可以直接...
IOS 播放系统提示音使用总结(AudioToolbox) IOS 播放系统提示音使用总结(AudioToolbox)是 IOS 开发中一个非常重要的知识点,它主要涉及到使用 AudioToolbox 框架来播放系统提示音和自定义提示音。在本文中,...
为您提供GiliSoft Audio Toolbox Suite 音频处理软件下载,GiliSoft Audio Toolbox Suite是一款音频编辑工具,软件集成了多种音频编辑处理工具,可以根据需要进行选择,包括录音机、音频切割器、音频转换器、音频...
1. **MATLAB Audio Database Toolbox**: 这是MATLAB环境中用于音频处理的一个扩展工具,它包含了处理音频数据库的函数和接口。用户可以借助这个工具箱进行音频分析、特征提取、信号增强以及分类任务。 2. **TIMIT...
MATLAB-Robotic-Toolbox 工具箱学习笔记提供了机器人仿真必备的工具箱。 一、General *Rotations:旋转矩阵的操作 * rotx() 函数:生成绕 x 轴旋转的旋转矩阵 * rotz() 函数:生成绕 z 轴旋转的旋转矩阵 * roty...
《Matlab Robotic Toolbox工具箱学习笔记》 Matlab Robotic Toolbox是一款强大的工具箱,专为在Matlab环境中进行机器人建模、控制和仿真而设计。这个工具箱提供了丰富的功能,包括旋转、变换、轨迹规划等,适用于...
《Matlab Robotic Toolbox工具箱学习笔记》 Matlab Robotic Toolbox是一款强大的工具箱,用于在Matlab环境中进行机器人建模、控制与仿真。本文主要根据该工具箱的demonstrations目录,分为三个部分来深入探讨其核心...
在本笔记中,我们将探讨该工具箱的一些关键功能。 首先,我们关注的是机器人旋转表示。在 Robotics Toolbox 中,可以使用 `rotx`, `roty`, `rotz` 函数来生成绕 x, y, z 轴的旋转矩阵,分别对应绕这三个轴的角度。...
在这个项目中,开发者使用了iOS和macOS平台上的AudioToolBox框架,这是一个强大的音频处理工具集。 AudioToolBox是Apple提供的核心框架之一,用于处理音频数据,支持多种音频格式的读写,以及播放、录制、混音等...
8. **示例代码**:为了便于学习和使用,flutter_audio_toolbox通常会附带一些示例代码,这些代码展示了如何初始化音频管理器、播放音频、停止播放、录制音频等基本操作,帮助开发者快速上手。 在实际项目中,开发者...
基于麦克风阵列的声源定位方法很多,相位变换加权的可控响应功率SRP-PHAT声源定位算法在混响环境中有较强的鲁棒性,可实现真实环境中的声源定位,因此该算法得到了广泛应用。SRP-PHAT对阵型没有特定要求,因此也适用...
开发者可以通过研究这个源码学习如何正确地使用AudioToolbox和VideoToolbox框架,从而在自己的应用中实现高质量、低延迟的音视频编码功能。同时,这也为那些希望深入理解iOS音视频处理底层原理的开发者提供了宝贵的...
Matlab 机器学习笔记 Matlab 是一个功能强大且广泛应用于机器学习和数据分析的工具。本笔记总结了 Matlab 中的机器学习技巧和 GUI 使用方法。 机器学习基础 机器学习是指在计算机科学中,使用算法和统计模型来...
#XMIDI###简介XMIDI是一款IOS上的MIDI文件播放引擎,基于Audio Toolbox Framework和OpenAL这两个库。 XMIDI使用Audio Toolbox Framework下API来完成MIDI文件的读取和解析,然后使用OpenAL来播放对应的音符。OpenAL...
本文将深入探讨如何使用AudioToolBox框架在iOS上实现G711音频格式的播放,以及如何通过修改音频参数来适应不同的音频压缩格式。 G711是一种广泛使用的音频编码标准,主要用于电话网络和VoIP通信。它有两种编码方式...
在本文中,我们将深入探讨如何在Mac环境下使用Qt框架,结合FFmpeg进行音频解码,并利用AudioToolBox框架播放音频。同时,我们还将讨论使用QAudioOutput类在Qt中实现音频播放的方法。以下是对这些技术的详细阐述: ...
AudioToolbox是Apple提供的一个框架,包含了处理音频的基本工具,如播放、混音、格式转换等,对于使用Bass接口来说至关重要。 设置完Remote Path后,记得点击"Ok"保存,然后更新本地文件缓存,再次点击"Ok"退出设置...
14 模式识别与机器学习工具箱 15 ttsbox1.1语音合成工具箱 16 分数阶傅里叶变换的程序FRFT 17 魔方模拟器与规划求解 18 隐马尔可夫模型工具箱 HMM 19 图理论工具箱GrTheory 20 自由曲线拟合工具箱ezyfit 21 分形维数...