我需要开发一个音频流应用程序,它具有播放,暂停和搜索(快进)的功能。除了seek之外,我已经实现了所有操作。我正在使用Matt的音频流sample code。任何人都可以详细解释如何实现音频搜索操作。我对寻求操作有了一个想法。即。使用AudioQueueGetCurrentTime()
方法。但我无法让整个概念得以实现。那么你可以帮我一个示例代码吗?
提前致谢, SYAM
答案 0 :(得分:4)
老兄,我正在做同样的事情。 我永远看着!!!
我试过
SInt64 byteOffset;
UInt32 ioFlags;
NSLog(@"seek to packet %i", mainMP3delegate.seek_Packet);
OSStatus err = AudioFileStreamSeek(inAudioFileStream, mainMP3delegate.seek_Packet, &byteOffset, &ioFlags);
if (err) { PRINTERROR("seek error"); myData->failed = true;}
我尝试将开始时间更改为我想要的地方
AudioTimeStamp ts; ts.mFlags = kAudioTimeStampSampleTimeValid; ts.mSampleTime = 111110; NSLog(@“采样时间%f”,ts.mSampleTime); ts.mSampleTime = mainMP3delegate.MP3_Timestamp; NSLog(@“采样时间%f”,ts.mSampleTime);
err = AudioQueueStart(myData->audioQueue, &ts.mSampleTime);
if (err) { PRINTERROR("AudioQueueStart"); myData->failed = true; return err; }
myData->started = true;
但都没有效果
但是,没有运气。 我最终(现在)下载了mp3并通过这里显示的缓冲区进行搜索,但这不是一个好的解决方案。
http://lists.apple.com/archives/coreaudio-api/2009/Jan//msg00143.html
男人!如果你想到这个或有人,我会发疯的。我还对有人正在进行的租赁公司出价,
答案 1 :(得分:0)
我也在使用Matt的音频流示例代码,但我无法用他的代码实现良好的搜索。
现在我正在使用执行音频流的MPMoviePlayerController,它的搜索功能非常好。唯一的问题是总时间是逐步计算的,只有下载到最后才能知道总时间。