如何获得AudioKit从远程URL流式传输音频文件?

时间:2018-09-08 05:38:41

标签: ios swift audio-streaming audiokit

我正在尝试在iOS应用中播放来自URL的音频文件(Swift 4)。我希望他们在下载时缓冲和播放。而且我非常喜欢AudioKit,但是为了我自己的生命,我不知道该如何使它读取远程文件。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您找不到它,因为它不存在。我们从未实现任何流功能。不过可以添加它,许多像您这样的人会很高兴。如果可以解决,请考虑贡献一些代码。如果您愿意,我们可以在开发过程中向您提供AudioKit的Slack组的成员身份。

答案 1 :(得分:2)

如果只需要流式传输和播放音频文件,则可以只使用AVFoundation.AVPlayer。如果要将其集成到AudioKit中,则当前需要更多。

您可以在本地缓存远程文件的URL,然后将该缓存的文件加载到AKPlayer中。显然不是流式传输-它将起作用:

guard let remote = URL(string: "https://www.sample-videos.com/audio/mp3/crowd-cheering.mp3"),
    let data = NSData(contentsOf: remote) else {
    AKLog("Remote failed to load.")
    return
}

let cachedFile = FileManager.default.homeDirectoryForCurrentUser.appendingPathComponent(remote.lastPathComponent)
try? data.write(to: cachedFile)
let player = AKPlayer(url: cachedFile)

请注意,这只是一个快速的macOS示例-您可能希望将其写入临时目录或其他地方。