Exoplayer 等效于 iOS - 类似于 TikTok 的视频流

Arj*_*jun 3 video streaming xcode6 exoplayer swift4

是否有与 iOS 等效的 exoplayer 播放视频?

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

Mic*_*ick 5

iOS 中的原生播放器是 AVPlayer

与 Google 的 ExoPlayer 是 Android 中通常的默认设置相同(另请参阅下面评论中@Manuel 的出色注释),AvPlayer 是 iOS 中的通常默认设置,您可以使用它来播放流视频,通常在 HLS 中适用于 Apple 设备的 .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=对象):

@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()
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 只是想指出 Exoplayer 不是 Android 中的默认媒体播放器,因为它不是 Android 框架的一部分。Android 的 MediaPlayer 是默认的。Exoplayer 是由 Google 开发为一个单独的库。ios 有类似的东西吗?与“相似”一样,我指的是提供与 Exoplayer 相同功能的东西。 (5认同)
  • @Amroelaswar 第 3 方库 Exoplayer 在 Android 中广泛使用,因为默认视频播放器是一个原始实现,并且市场上各种 Android 硬件和自定义操作系统风格使得在 Android 上开发和维护视频播放器变得很痛苦。这些都是 iOS 开发者几乎不知道的痛点。默认的 iOS 框架提供了开箱即用的 Exoplayer 功能(以及更多功能)。根本不需要 Exoplayer。另一个例子,尝试在 Android 上将视频编码为 mp4,这纯粹是痛苦。在 iOS 上,您只需一行即可本地高效地完成此操作。 (3认同)