【问题标题】:long mp3 from url loading too long on iPhone来自 url 的长 mp3 在 iPhone 上加载时间过长
【发布时间】:2013-09-17 15:11:31
【问题描述】:

我是新手,所以如果我碰巧问明显的问题,请放轻松。

我是 iPhone 编程的新手,现在我的任务是从 URL 播放 mp3 文件。情况是: - 整个过程在电话间隙中并由javascript触发,但我相信这不是问题的根源,如果我错了,请纠正我 - 有问题的 mp3 通常超过 1 小时

我尝试过 AVAudioPlayer、AVQueuePlayer、AVPlayer 和 Matt Gallagher 的 AudioStream。前三个选项非常适合短 mp3。对于 1 1/2h mp3,我需要 2-4 分钟来加载文件。 Matt Gallagher 的 AudioStream 更快,但仍然需要 15 秒才能加载,然后开始卡顿约 20 秒,然后才能正常继续。 我的最后一个选择是使用 AudioQueue,但我无法让它工作。

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

【问题讨论】:

    标签: iphone ios audio web mp3


    【解决方案1】:

    您需要的是用于处理声音的较低级别的 API。

    试试 OpenAL。一些提示hereresources on GitHub。这个lecture 也很有用。

    【讨论】:

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

    所以到目前为止这对我来说很好:

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

    然后我只是使用普通的[audioPlayer play] 开始。有更多可能的配置,但默认值是我想要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-23
      • 2016-06-20
      • 2016-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多