Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
长mp3从url加载在iPhone上的时间过长_Iphone_Ios_Audio_Web_Mp3 - Fatal编程技术网

长mp3从url加载在iPhone上的时间过长

长mp3从url加载在iPhone上的时间过长,iphone,ios,audio,web,mp3,Iphone,Ios,Audio,Web,Mp3,我是新来的,所以如果我碰巧问了一些显而易见的问题,请对我宽容一点 我对iPhone编程相当陌生,现在的任务是从URL播放mp3文件。情况如下: -整个过程在phone gap中,由javascript触发,但我相信这不会导致问题,如果我错了,请纠正我 -所讨论的MP3通常长于1小时 我试过AVAudioPlayer、AVQueuePlayer、AVPlayer和Matt Gallagher的音频流。前三个选项适用于短mp3。对于1 1/2小时的mp3,我需要2-4分钟来加载文件。马特·加拉赫(M

我是新来的,所以如果我碰巧问了一些显而易见的问题,请对我宽容一点

我对iPhone编程相当陌生,现在的任务是从URL播放mp3文件。情况如下: -整个过程在phone gap中,由javascript触发,但我相信这不会导致问题,如果我错了,请纠正我 -所讨论的MP3通常长于1小时

我试过AVAudioPlayer、AVQueuePlayer、AVPlayer和Matt Gallagher的音频流。前三个选项适用于短mp3。对于1 1/2小时的mp3,我需要2-4分钟来加载文件。马特·加拉赫(Matt Gallagher)的音频流速度更快,但仍然需要15秒才能加载,然后开始口吃大约20秒,然后才能正常继续。 我的最后一个选择是使用AudioQueue,但我无法让它工作


建议使用哪种API,以及从NSURL或CFURLref开始的必要步骤。提前感谢。

您需要的是处理声音的低级API


试试OpenAL。一些建议。这也很有用。

因此,到目前为止,这对我来说效果很好:

AVURLAsset *asset = [AVURLAsset assetWithURL:[NSURL URLWithString:myURL]];
playerItem = [[AVPlayerItem alloc] initWithAsset:asset];
audioPlayer = [AVPlayer playerWithPlayerItem:playerItem];

然后我就用普通的
[audioPlayer play]
开始了。可能有更多的配置,但默认配置符合我的要求。

谢谢链接。OpenAL似乎无法工作,因为它需要未压缩的音频。如果我理解正确,我必须先下载文件,然后转换它,这样很可能会导致加载时间,对吗?不过,通过您的链接,我找到的解决方案是AVURLAsset-->AVPlayerItem-->AVPlayer。这一个工作了一次,所以我会做更多的测试,然后发布代码。