带有问号的Exoplayer本地路径

时间:2018-01-04 13:15:04

标签: android exoplayer

我正在开发音乐应用程序。我一直在用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);

我不想替换“?”任何角色。 我怎么玩? 有人帮忙吗? 感谢

1 个答案:

答案 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"));
}