我使用assetUrl从iPod库中读取歌曲(在代码中命名为audioUrl)我可以用很多方式播放,我可以剪掉它,我可以用它来做一些但是......我真的不明白我要用这个做什么CMSampleBufferRef获取绘制波形的数据!我需要有关峰值的信息,我怎么能得到这个(也许是另一种)方式?
AVAssetTrack * songTrack = [audioUrl.tracks objectAtIndex:0];
AVAssetReaderTrackOutput * output = [[AVAssetReaderTrackOutput alloc] initWithTrack:songTrack outputSettings:nil];
[reader addOutput:output];
[output release];
NSMutableData * fullSongData = [[NSMutableData alloc] init];
[reader startReading];
while (reader.status == AVAssetReaderStatusReading){
AVAssetReaderTrackOutput * trackOutput =
(AVAssetReaderTrackOutput *)[reader.outputs objectAtIndex:0];
CMSampleBufferRef sampleBufferRef = [trackOutput copyNextSampleBuffer];
if (sampleBufferRef){/* what I gonna do with this? */}
Run Code Online (Sandbox Code Playgroud)
请帮我!
过去两周我一直在这里,这让我发疯.几天前我问过这个问题(提取iPod库原始PCM样本并播放声音效果),虽然答案让我走了一半,但我仍然卡住了.
基本上我想要实现的是从iPod库中加载多首歌曲,以便通过弯音,均衡效果等效果进行播放......
我走了AVPlayer和AVAudioPlayer的路线太简单了.我见过的唯一可以用这些效果播放音频的框架是OpenAL.我尝试了一些客观的c包装器(Finch和ObjectAL)Finch不播放压缩音频,而ObjectAL只会为我转换它,如果我传入一个文件的URL(这是我不能做的,因为我只有一个不兼容的iPod库URL).
一个应用程序的一个例子,我想要美丽的东西是Tap DJ.它可以快速加载来自iPod库的歌曲(与TouchDJ不同,它可以播放各种各样的效果.
任何帮助将非常感激.