iPhone iOS5 播放未捆绑的音频都有哪些选择?

Posted

技术标签:

【中文标题】iPhone iOS5 播放未捆绑的音频都有哪些选择?【英文标题】:iPhone iOS5 what are my options for playing audio I do not have bundled in?iPhone iOS5 播放未捆绑的音频有哪些选择? 【发布时间】:2011-11-07 04:25:09 【问题描述】:

我目前有 3 种方式在我的应用中播放音频:

    使用 AudioServicesPlaySystemSound 进行振动和简单 声音

    使用 Audio Toolbox 处理捆绑文件(第三方类)

    AudioServicesAudioFX

    结合使用

我目前正在调查的是,我是否可以播放 iPhone 上已经存在的其他类型的音频。我想减少我的应用程序的下载大小,并在用户可以播放的声音类型方面提供更大的灵活性。

我可以在我的应用内玩吗:

    来自语音备忘录应用程序的录音,或者我必须这样做 创建我自己的录音? iPod 播放列表 或音乐应用程序中的项目? youtube 中的项目通过预加载它们,还是我每次都必须流式传输它们? 手机现有铃声

当谈到在 iPhone 上播放音频时,我是一个完整的初学者,并且已经在使用两个 3rd 方类来完成音频任务。

有没有简单的方法来完成上面列出的一些任务?

【问题讨论】:

您可以播放来自 1. iPod Library 2. Online Source 的声音(您每次都需要流式传输。不确定现有的铃声。无需使用任何 3rd 方类来完成音频任务。您有3个播放音频的Framework类。1. AudioUnit 2. AVAudioPlayer 3. MPMediaPlayer。各有优缺点。请参考苹果的文档了解更多详情。 【参考方案1】:

1) 语音备忘录应用中的录音

以前有人问过,但我认为您的应用沙箱不可能做到这一点。

iPhone: Access voice memos programmatically

2) 来自 iPod 播放列表或音乐应用程序的项目

有一个 API,即 iPod Access Library:

http://developer.apple.com/library/ios/#documentation/Audio/Conceptual/iPodLibraryAccess_Guide/Introduction/Introduction.html

3) 来自 youtube 的项目

应该可以,使用 UIWebView。

http://iphoneincubator.com/blog/audio-video/how-to-play-youtube-videos-within-an-application

4) 手机的现有铃声

不,您不能以编程方式访问当前铃声。

How can I programmatically determine the default ringtone on an iPhone?

【讨论】:

【参考方案2】:

您可以在第一次启动时下载声音文件(不是在您的 didFinishLaunchingWithOptions 方法中,否则您的应用可能会被终止)并将它们保存在本地,然后您可以在需要时播放它们。您可以在他们的 iTunes 资料库中播放文件,但不知道他们在资料库中有什么。

要从他们的库中播放,这是一个方便的示例:

http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-music-library-access/

您还可以使用 AVAudioRecorder 从您的应用记录用户输入,保存并随时播放。

【讨论】:

这个项目看起来很有趣,我喜欢我可以轻松导入和测试它! 刚刚编译了这个教程,正是我一直在寻找的!通过访问音乐库,其他方法相形见绌!如果我需要播放铃声,可以将铃声添加到 iTunes 音乐库并与设备同步。非常感谢

以上是关于iPhone iOS5 播放未捆绑的音频都有哪些选择?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 5 中检测 iPhone 静音开关

在 Mac 上播放八度音阶的音频都有哪些可能的方法?

在 iOS 上播放 MP3 或 AAC 文件都有哪些音频播放选项?

在 iOS5 中自动播放 HTML5 音频/视频

使用 AVAudioPlayer 播放多个音频文件

在 iPhone iOS 中播放音频时在多个文件之间跳转