安卓媒体播放器ExoPlayer,从SD卡或原始目录播放视频。

5

我正在使用Android新的Media3 Exoplayer库,遵循这个代码实验室,但是没有绕过从res/raw目录播放视频的方法。我从res/raw目录播放的代码如下:

    val uri = RawResourceDataSource.buildRawResourceUri(R.raw.my_video)
    val mediaItem = MediaItem.fromUri(uri)
    exoPlayer.setMediaItem(mediaItem)

上述代码无法正常工作,如果我使用mp4 URL创建MediaItem,则可以正常工作。 mp4 URL的代码如下:

    val mediaItem = MediaItem.fromUri(getString(R.string.media_url_mp4))
    exoPlayer.setMediaItem(mediaItem)

请问有人能帮我解决这个问题吗?

提前感谢!


你解决了吗? - undefined
1个回答

0
这是对我有效的代码。
从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() ```
这段代码用于从HTTP URL获取视频。首先,我们创建了一个ExoPlayer实例,并设置了上下文。然后,我们使用MediaItem.Builder构建器设置了视频的URL。接下来,我们将ExoPlayer实例与视频播放器视图绑定,并将视频媒体项添加到播放器中。最后,我们调用play()方法开始播放视频。
2. 从原始文件夹中提取视频的代码。
     val videoUri = RawResourceDataSource.buildRawResourceUri(R.raw.test_video_2)
     val mediaItem = MediaItem.fromUri(videoUri)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接