我有兴趣构建类似于wynk的iOS应用程序。该应用程序将有一个歌曲列表。在单击任何选项时,它将开始从服务器流式传输该音乐文件。我不想使用任何第三方API。任何帮助/建议都会有很大帮助。我使用xCode 8.0和swift 3。
答案 0 :(得分:1)
Apple为音频/视频流提供HTTP直播流(HLS): https://developer.apple.com/streaming/,
在流式传输会话开始时,客户端下载主.m3u8播放列表文件,其中包含可用的各种子流的元数据。然后根据预定义因素(如设备类型,分辨率,数据速率,大小等)决定从可用媒体文件下载的内容。
Apple提供了有关如何播放和保留远程服务器上托管的HTTP Live Streams的示例代码: https://developer.apple.com/library/content/samplecode/HLSCatalog/Listings/HLSCatalog_AssetListTableViewCell_swift.html#//apple_ref/doc/uid/TP40017320-HLSCatalog_AssetListTableViewCell_swift-DontLinkElementID_4
在这里也可以在HLS上查看这个答案,你将全面了解:HTTP LIve Streaming
用于播放的AVFoundation https://developer.apple.com/av-foundation/
import AVFoundation
import UIKit
class ViewController: UIViewController {
override func viewDidAppear(animated: Bool) {
let videoURL = NSURL(string: "your_video_url")
guard let player = AVPlayer(URL: videoURL) else { return }
let playerLayer = AVPlayerLayer(player: player)
playerLayer.frame = self.view.bounds
self.view.layer.addSublayer(playerLayer)
player.play()
}
}
答案 1 :(得分:0)
您可以使用AVPlayer这是一个控制器对象,用于管理媒体资产的播放和时间。它提供了控制播放器传输行为的界面,例如播放,暂停,更改播放速率以及在媒体时间线内寻找各个时间点的能力。您可以使用AVPlayer播放本地和远程基于文件的媒体,例如QuickTime电影和MP3音频文件,以及使用HTTP Live Streaming提供的视听媒体。