适用于iOS的Exoplayer-视频流类似于TikTok

时间:2019-10-05 11:12:00

标签: video streaming xcode6 swift4 exoplayer

是否有iOS专用的exoplayer可以播放视频?

或者有人可以帮助我知道TikTok如何流式传输视频?它使用哪个视频播放器?我正在尝试从Firebase数据库流式传输应用程序中的视频,我使用的是Swift,但一直坚持选择正确的流式传输视频方式。有人可以帮我还是告诉我如何开始?

1 个答案:

答案 0 :(得分:2)

iOS中的本机播放器是AVPlayer

与Google的ExoPlayer是Android中的常用默认设置相同,AvPlayer是iOS中的常用默认设置,您可以使用它来播放流式视频,对于Apple设备,该视频通常采用HLS .m3u8文件流格式。 Android设备的流通常是DASH .mpd文件流格式。

这时,Apple还为包括iOS在内的各种设备添加了新的UI框架-如果您正在使用它,则值得搜索一些AVPlayer集成的好示例,例如:

https://medium.com/@chris.mash/avplayer-swiftui-b87af6d0553

如果您使用的是更传统的UIKit,则Apple提供了一些简单的示例可供您测试,将您的测试代码替换为以下代码(来自:https://developer.apple.com/documentation/avfoundation/media_assets_playback_and_editing/creating_a_basic_video_player_ios_and_tvos?language=objc):

@IBAction func playVideo(_ sender: UIButton) {
    //Substitute your video stream URL here to test
    guard let url = URL(string: "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8") else {
        return
    }
    // Create an AVPlayer, passing it the HTTP Live Streaming URL.
    let player = AVPlayer(url: url)

    // Create a new AVPlayerViewController and pass it a reference to the player.
    let controller = AVPlayerViewController()
    controller.player = player

    // Modally present the player and call the player's play() method when complete.
    present(controller, animated: true) {
        player.play()
    }
}