ExoPlayer从原始文件夹中读取mp3文件
有没有可能将位于应用程序的原始文件夹中的MP3文件设置为ExoPlayer?
我试图用下面的代码片段实现它,但不幸的是:
mMediaPath = "android.resource://" + getPackageName() + File.separator + R.raw.ringtone;
任何帮助是极大的赞赏!
可以从原始文件夹加载文件,关键是使用RawSourceDataSource
。
下面是一个示例(在Kotlin中)为原始目录中的mp3文件创建LoopingMediaSource
:
val uri = RawResourceDataSource.buildRawResourceUri(R.raw.mp3file) val dataSource = RawResourceDataSource(this) dataSource.open(DataSpec(URI)) val source = ExtractorMediaSource(uri,DataSource.Factory {dataSource},Mp3Extractor.FACTORY,null,null) LoopingMediaSource(源)
我无法从原始文件加载mp3文件,所以我最终将它们移动到资产目录,按照与ExoPlayer的作者之一的讨论。 ( https://github.com/google/ExoPlayer/issues/556 )
这是我如何从资产中访问mp3文件,如果有人将来需要它的话:
mMediaPath = "asset:///my_ringtone.mp3";
并添加了这个DemoPlayer的路径如下:
new DemoPlayer(new ExtractorRendererBuilder(this, userAgent, Uri.parse(mMediaPath), null, new Mp3Extractor()));
感谢所有愿意回答我的问题。