Closed fenggit closed 4 years ago
问题:网络不好稳定的错误: ExoPlayer error Unable to connect to http://xxxxxxxxx.mp3
再次调用: MusicManager.getInstance().playMusic() 还是没有播放,退出重新加载才可以,还有isSkipToNextEnabled和isSkipToPreviousEnabled有时候不准确
解决方法:
2.第二种方法:增加isNeedReload标记,是否重新加载,其次mExoPlayer不应该每次切歌曲的时候创建1个,而是init一次,我是把player放到构造方法里面创建1次。
` @Override public void play(QueueItem item, boolean isPlayWhenReady) { mPlayOnFocusGain = true; String mediaId = item.getDescription().getMediaId(); boolean mediaHasChanged = !TextUtils.equals(mediaId, mCurrentMediaId); if (mediaHasChanged) { mCurrentMediaId = mediaId; } if (mediaHasChanged || isNeedReload) { releaseResources(false); // release everything except the player MediaMetadataCompat track = mMusicProvider.getMusic(item.getDescription().getMediaId());
String source = track.getString(MediaMetadataCompat.METADATA_KEY_MEDIA_URI); if (TextUtils.isEmpty(source)) { return; } source = source.replaceAll(" ", "%20"); // Escape spaces for URLs //缓存歌曲 //if (ExoDownload.getInstance().isOpenCache()) { // ExoDownload.getInstance().getDownloadTracker().toggleDownload(mediaId, Uri.parse(source), ""); //} MediaSource mediaSource = buildMediaSource(dataSourceFactory, Uri.parse(source), null); mExoPlayer.prepare(mediaSource); isNeedReload = false; } if (isPlayWhenReady) { mExoPlayer.setPlayWhenReady(true); } }
`
最近比较忙,没时间搞github,你可以自己研究下改改,提个 Pull requests ,后面有空的时候会看看的
最新版本已经解决
问题:网络不好稳定的错误: ExoPlayer error Unable to connect to http://xxxxxxxxx.mp3
再次调用: MusicManager.getInstance().playMusic() 还是没有播放,退出重新加载才可以,还有isSkipToNextEnabled和isSkipToPreviousEnabled有时候不准确
解决方法:
2.第二种方法:增加isNeedReload标记,是否重新加载,其次mExoPlayer不应该每次切歌曲的时候创建1个,而是init一次,我是把player放到构造方法里面创建1次。
` @Override public void play(QueueItem item, boolean isPlayWhenReady) { mPlayOnFocusGain = true; String mediaId = item.getDescription().getMediaId(); boolean mediaHasChanged = !TextUtils.equals(mediaId, mCurrentMediaId); if (mediaHasChanged) { mCurrentMediaId = mediaId; } if (mediaHasChanged || isNeedReload) { releaseResources(false); // release everything except the player MediaMetadataCompat track = mMusicProvider.getMusic(item.getDescription().getMediaId());
`