我正在开发音乐应用程序。我一直在用exoplayer播放音乐。我遇到了问题,找不到任何解决方案。我的问题是,我已经从互联网上下载了歌曲文件。这首歌的名字包含“?”标记。我为这首歌曲文件创建了路径并使用了它的名字。歌曲下载成功后。我和exoplayer一起玩。我为这首歌创建了路径并设置为exoplayer但是无法播放。
歌曲路径= / storage / emulated / 0 / mymusic / downloads /我是怎么回事?_009.mp3
Uri uri = Uri.parse(路径);
MediaSource mediaSource = new ExtractorMediaSource.Factory(dataSourceFactory).createMediaSource(uri, null, null);
exoPlayer.prepare(mediaSource);
我不想替换“?”任何角色。 我怎么玩? 有人帮忙吗? 感谢
答案 0 :(得分:0)
如果您打算同时播放离线音乐和在线音乐,则可能还需要使用类似的方法:
MediaSource mediaSource = new ExtractorMediaSource
.Factory(dataSourceFactory)
.createMediaSource(
isOnlinePath(path) ? Uri.parse(path) : Uri.fromFile(new File(path))
, null, null);
exoPlayer.prepare(mediaSource);
boolean isOnlinePath(String path) {
return path != null &&
(path.contains("http") ||
path.contains(".m3u") ||
path.contains(".pls"));
}