4

我需要开发一个音频流应用程序,它具有播放、暂停和搜索(快进)的能力。我已经实现了除了 seek 之外的所有操作。我正在使用 Matt 的音频流示例代码。任何人都可以详细解释如何实现音频搜索操作。我对搜索操作有了一个想法。IE。使用AudioQueueGetCurrentTime()方法。但我无法得到整个概念来实现它。那么你能帮我提供一个示例代码吗?

在此先感谢, 赛姆

4

2 回答 2

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;}

我试图将开始时间更改为我想要的地方

音频时间戳 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;

但都没有奏效

我知道它很简单,我只是不知道,所以我出价让elance找人来解决它,甚至是为了钱!!!http://www.elance.com/jobs/16779786/iphone_application_audio_streaming_seek_scrub&&catId=11033&backurl=aHR0cDovL3d3dy5lbGFuY2UuY29tL3BocC9zZWFyY2gvbWFpbi9lb2xzZWFyY2gucGhwP21hdGNoVHlwZT1wcm9qZWN0I21hdGNoS2V5d29yZHM9aXBob25lJTIwc3RyZWFtJTIwc2VlayZzb3J0Qnk9JnNvcnRPcmRlcj0mcGFnZT0xJmNhdEZpbHRlcj0xMDAmc3ViY2F0RmlsdGVyPSZ0aW1lbGVmdEZpbHRlcj0mdGltZWxpc3RlZEZpbHRlcj0mYnVkZ2V0RmlsdGVyPS0xJmZlYXR1cmVkcHJvamVjdEZpbHRlcj1mYWxzZSZlc2Nyb3dwcm9qZWN0RmlsdGVyPWZhbHNlJmIyYnByb2plY3RGaWx0ZXI9ZmFsc2UmaG91cmx5cHJvamVjdEZpbHRlcj10cnVlJmZpeGVkcHJvamVjdEZpbHRlcj10cnVlJnN0YXR1c0ZpbHRlcj0xMDAzNyZhbWV4cHJvamVjdEZpbHRlcj0%3D&job_tier=11188

但是,没有运气。我最终(现在)下载了 mp3 并通过缓冲区进行搜索,如下所示,但这不是一个好的解决方案。

http://lists.apple.com/archives/coreaudio-api/2009/Jan//msg00143.html

男人!如果你想通了或者有人想通了,我会发疯的。我还对有人正在开发的rentacoder出价,

于 2009-04-17T16:46:22.600 回答
0

我也在使用 Matt 的音频流示例代码,但我无法用他的代码实现良好的搜索。

现在我正在使用 MPMoviePlayerController 进行音频流式传输,它的搜索功能效果很好。唯一的问题是总时间是逐步计算的,只有下载到最后才能知道总时间。

MPMoviePlayerController 类参考

于 2012-03-02T11:39:42.150 回答