我需要开发一个音频流应用程序,它具有播放、暂停和搜索(快进)的能力。我已经实现了除了 seek 之外的所有操作。我正在使用 Matt 的音频流示例代码。任何人都可以详细解释如何实现音频搜索操作。我对搜索操作有了一个想法。IE。使用AudioQueueGetCurrentTime()
方法。但我无法得到整个概念来实现它。那么你能帮我提供一个示例代码吗?
在此先感谢, 赛姆
我需要开发一个音频流应用程序,它具有播放、暂停和搜索(快进)的能力。我已经实现了除了 seek 之外的所有操作。我正在使用 Matt 的音频流示例代码。任何人都可以详细解释如何实现音频搜索操作。我对搜索操作有了一个想法。IE。使用AudioQueueGetCurrentTime()
方法。但我无法得到整个概念来实现它。那么你能帮我提供一个示例代码吗?
在此先感谢, 赛姆
伙计,我正在做同样的事情。我看着永远!!!
我试过了
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;}
我试图将开始时间更改为我想要的地方
音频时间戳 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
男人!如果你想通了或者有人想通了,我会发疯的。我还对有人正在开发的rentacoder出价,
我也在使用 Matt 的音频流示例代码,但我无法用他的代码实现良好的搜索。
现在我正在使用 MPMoviePlayerController 进行音频流式传输,它的搜索功能效果很好。唯一的问题是总时间是逐步计算的,只有下载到最后才能知道总时间。