[英]Delete file using uri extracted from MediaStore.Audio.Media.DATA
[英]Exoplayer set mediaSource using ContentResolver#openFileDescriptor(Uri, String) , instead of Uri.parse(MediaStore.Audio.Media.DATA)
由于MediaStore.Audio.Media.DATA
已弃用,如何在 Android Q 中将 uri 传递给 mediaSource
早些时候(低于 Api 29 / Android 10 / Q)这就是我使用的
mediaSource = new ProgressiveMediaSource. Factory(dataSourceFactory).createMediaSource(Uri.parse(SongsForQueue.get(i)._path));
simpleExoPlayer.prepare(mediaSource);
simpleExoPlayer.setPlayWhenReady(true);
其中 SongsForQueue.get(i)._path 是我们从MediaStore.Audio.Media.DATA
获得的文件的路径,因为 Android Q 弃用了 MediaStore.Audio.Media.DATA 我们可以使用什么
安卓建议
https://stackoverflow.com/a/59037794
用
ContentResolver#openFileDescriptor(Uri, String)。
我们怎样才能做到任何帮助都会有用
我解决了这个问题:
long mediaId = //composition id in media store
Uri uri = ContentUris.withAppendedId(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, mediaId);
DataSpec dataSpec = new DataSpec(uri);
ContentDataSource dataSource = new ContentDataSource(context);
dataSource.open(dataSpec);
DataSource.Factory factory = () -> dataSource;
MediaSource mediaSource = new ProgressiveMediaSource.Factory(factory).createMediaSource(uri);
player.prepare(mediaSource);//your player
Exoplayer 版本:2.11.3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.