Getting the musical data of an iPod-track(获取 iPod 曲目的音乐数据)
问题描述
如何获取 iPod 曲目的内容(原始/样本数据)?我见过像铃声设计器"和 iMovie 这样的应用程序可以做到这一点,但我不知道他们使用哪个 api 或他们做了什么.我可以想象 iMovie 使用私有 api,但铃声设计器"是第三方应用程序,所以必须使用公共 api 功能.
How can I get the content (raw/sample data) of an iPod-track? I've seen apps like "Ringtone Designer" and iMovie which can do it, but I have no idea which api they use or what they do. I could imagine that iMovie uses private apis, but "Ringtone Designer" is a third-party app, so it must be possible with the public api-functions.
推荐答案
我自己没有这样做,但根据文档,这些是步骤(大致):
I haven't done this myself but according to the documentation these are the steps (roughly):
- 创建一个
MPMediaQuery 以从 iPod 库中检索一个或多个
MPMediaItem 对象.
- 使用
-[MPMediaItem valueForProperty: MPMediaItemPropertyAssetURL]
询问这些媒体项目的 URL. - 从 URL 创建一个
AVURLAsset
. - 为资产创建一个
AVAssetReader
实例. - 创建一个或多个
AVAssetReaderTrackOutput
实例(资产的每个轨道一个)并使用-[AVAssetReader addOutput:]
将它们添加到资产阅读器..李> - 调用
-[AVAssetReader startReading]
. - 为每个
AVAssetReaderTrackOutput
对象调用-copyNextSampleBuffer
,直到您读取所有数据.
- Create an
MPMediaQuery
to retrieve one or moreMPMediaItem
objects from the iPod library. - Ask those media items for their URL with
-[MPMediaItem valueForProperty: MPMediaItemPropertyAssetURL]
. - Create an
AVURLAsset
from the URL. - Create an instance of
AVAssetReader
for the asset. - Create one or more instances of
AVAssetReaderTrackOutput
(one for each track of the asset) and add them to the asset reader with-[AVAssetReader addOutput:]
. - Call
-[AVAssetReader startReading]
. - Call
-copyNextSampleBuffer
for each of yourAVAssetReaderTrackOutput
objects until you have read all the data.
有关详细信息,请参阅所有这些类的文档.
See the documentation to all these classes for details.
这篇关于获取 iPod 曲目的音乐数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:获取 iPod 曲目的音乐数据
基础教程推荐
- Android:对话框关闭而不调用关闭 2022-01-01
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01