gpt4 book ai didi

java - ExoPlayer - 播放 SD 卡中的本地 mp4 文件

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:37 24 4
gpt4 key购买 nike

我正在使用 Exoplayer Demo 应用程序并想从 SD 卡预加载 MP4 视频。我已经尝试了 this post 的实现, 但它不起作用。在我的 exoplayer Demo 中没有名为 DemoUtil.java 的类。而是使用:

public static final Sample[] LOCAL_VIDEOS = new Sample[] {
new Sample("Some User friendly name of video 1",
"/mnt/sdcard/video1.mp4", Util.TYPE_OTHER),
};

我也无法使用他们为 SampleChooserActivity.java 提到的代码 fragment 。 (不断给我错误)

我改为使用:

group = new SampleGroup("Local Videos");
group.addAll(Samples.LOCAL_VIDEOS);
sampleGroups.add(group);

我做错了什么?每个设备的文件路径都会改变吗?

最佳答案

还没有尝试演示应用程序,但我已经设法创建了我自己的播放本地音频文件的示例并将其发布在这里: https://github.com/nzkozar/ExoplayerExample

这是主要部分,它完成了从文件 Uri 准备播放器的所有工作:

private void prepareExoPlayerFromFileUri(Uri uri){
exoPlayer = ExoPlayerFactory.newSimpleInstance(this, new DefaultTrackSelector(null), new DefaultLoadControl());
exoPlayer.addListener(eventListener);

DataSpec dataSpec = new DataSpec(uri);
final FileDataSource fileDataSource = new FileDataSource();
try {
fileDataSource.open(dataSpec);
} catch (FileDataSource.FileDataSourceException e) {
e.printStackTrace();
}

DataSource.Factory factory = new DataSource.Factory() {
@Override
public DataSource createDataSource() {
return fileDataSource;
}
};
MediaSource audioSource = new ExtractorMediaSource(fileDataSource.getUri(),
factory, new DefaultExtractorsFactory(), null, null);

exoPlayer.prepare(audioSource);
}

你可以这样获取Uri:Uri.fromFile(file)

如上所示准备播放文件后,您只需调用 exoPlayer.setPlayWhenReady(true); 即可开始播放。

对于视频文件,您可能只需要将表面 View 附加到 exoPlayer 对象,但我还没有真正用 ExoPlayer2 完成此操作。

关于java - ExoPlayer - 播放 SD 卡中的本地 mp4 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35675105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com