ios - 如何快速播放来自http数据流的音频

标签 ios swift audio audio-streaming http-streaming

我有一个来自 http 响应的音频数据流。我使用 URLSessionDataDelegate 方法接收字节数据包:

urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data)

我使用 AVAudioPlayer 对象及其 initWithData: 初始化方法将所有数据包附加到单个数据对象后成功播放了音频。

我真正想做的是在数据仍在输入时开始音频播放 - 有效地流式传输音频。对于这个用例,我还没有看到任何看起来优雅的答案。

我见过的选项是:

  1. 使用 AudioToolbox:音频文件流服务和音频队列
  2. 使用 NSStream API,写入文件并同时播放该文件中的音频

如何从传入的数据包实现音频流播放?

最佳答案

最简单的方法是使用AVFoundation框架的AVPlayer。使用您的 URL 实例化 playerItem 并将其传递给播放器。以下代码将为您完成。

    let urlString = "your url string"
    guard let url = URL.init(string: urlString)
        else {
            return
    }
    let playerItem = AVPlayerItem.init(url: url)
    player = AVPlayer.init(playerItem: playerItem)
    player.play()

关于ios - 如何快速播放来自http数据流的音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48878866/

相关文章:

ios - 嵌套 View 会降低图像质量

快速数组初始化

ios - 在 UITableView 中实现 imageView 滑动,具有水平滚动和页面指示器

audio - 如何在 WebRTC 中启用噪声抑制和音频镜像

java - 在Android App上播放MP3文件?

ios - iOS 中的 MVVM : who is the responsible for the assembly?

ios - React Native 应用程序中的 PhaseScriptExecution 错误

ios - 从 AFHTTPSessionManager 获取数据

ios - 在 Swift 中处理初始化失败

html - 在html5应用上录制音频