默认情况下,使用ExoPlayerAudioService .
在ExoPlayerAudioService.GetSource方法中存在url escape问题
private IMediaSource GetSource(string url)
{
string escapedUrl = Uri.EscapeDataString(url);
var uri = Android.Net.Uri.Parse(escapedUrl);
var factory = URLUtil.IsHttpUrl(escapedUrl) || URLUtil.IsHttpsUrl(escapedUrl) ? GetHttpFactory() : new FileDataSourceFactory();
var extractorFactory = new DefaultExtractorsFactory();
return new ExtractorMediaSource(uri
, factory
, extractorFactory, null, this);
}
string escapedUrl = Uri.EscapeDataString(url);
I.E. http://example.com/path_to_audio.mp3将被转义为"http%3A%2F%2Fexample.com%2Fpath_to_audio.mp3",因为HTTP错误 .
修复只是跳过网址逃脱 .