是否有可能將位於應用程序的原始文件夾中的mp3文件設置爲ExoPlayer?ExoPlayer從原始文件夾中讀取mp3文件
我試着用下面的代碼片段來實現它沒有成功遺憾的是:
mMediaPath = "android.resource://" + getPackageName() + File.separator + R.raw.ringtone;
任何幫助,不勝感激!
是否有可能將位於應用程序的原始文件夾中的mp3文件設置爲ExoPlayer?ExoPlayer從原始文件夾中讀取mp3文件
我試着用下面的代碼片段來實現它沒有成功遺憾的是:
mMediaPath = "android.resource://" + getPackageName() + File.separator + R.raw.ringtone;
任何幫助,不勝感激!
我無法從原始文件加載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()));
感謝所有願意回答我的問題。
可以從原始文件夾加載文件,關鍵是使用RawSourceDataSource
。
下面是一個例子(在科特林),以在原目錄中的mp3file創建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(source)
是。放入原始文件夾的資產不會被APPT觸及。有很多方法可以實現這一點;但首先,你的原始文件夾裏面的res文件夾? –
是的,它位於res文件夾內。 –
@GeorgeD你有沒有發現任何可能性? –