Android media3 exoplayer,从SD卡或Raw目录播放视频

Rah*_*hra 5 android exoplayer

我在这个 code-lab之后使用 Android 新Media3 Exoplayer库,但是没有解决方法可以从 res/raw 目录播放视频。我从 res/raw 目录播放的代码是

    val uri = RawResourceDataSource.buildRawResourceUri(R.raw.my_video)
    val mediaItem = MediaItem.fromUri(uri)
    exoPlayer.setMediaItem(mediaItem)
Run Code Online (Sandbox Code Playgroud)

上面的代码不起作用,如果我使用mp4URL 创建 MediaItem,那么它就可以工作。URL的代码mp4

    val mediaItem = MediaItem.fromUri(getString(R.string.media_url_mp4))
    exoPlayer.setMediaItem(mediaItem)
Run Code Online (Sandbox Code Playgroud)

谁能帮我解决这个问题吗?

提前致谢!

Sur*_*esh 0

这是对我有用的代码。

  1. 来自 HTTP URL 的视频代码。

    val player: ExoPlayer = ExoPlayer.Builder(requireContext()).build()
    val mediaItem = MediaItem.Builder().setUri("https://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4").build()
    binding.videoPlayerMedia3.player = player
    player.addMediaItem(mediaItem)
    player.play()
    
    Run Code Online (Sandbox Code Playgroud)

2.Raw 文件夹中的视频代码。

     val videoUri = RawResourceDataSource.buildRawResourceUri(R.raw.test_video_2)
     val mediaItem = MediaItem.fromUri(videoUri)
Run Code Online (Sandbox Code Playgroud)