android - mediaplayer 播放互联网 mp3 :java.io.FileNotFoundException: No content provider
问题描述
这是我的代码:
public void playSound(String uri,int flag)
{
Uri uri1=Uri.parse(uri);
ContestVoteFragment fragment = (ContestVoteFragment) fragments.get(0);
if (fragment.playSound(flag))
{
if (mediaPlayer==null)
{
mediaPlayer=new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(uri);
mediaPlayer.prepare();
} catch (IOException e) {
e.printStackTrace();
}
mediaPlayer.start();
}else {
mediaPlayer.stop();
mediaPlayer.reset();
mediaPlayer.release();
mediaPlayer=new MediaPlayer();
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
try {
mediaPlayer.setDataSource(uri);
mediaPlayer.prepare();
} catch (IOException e) {
e.printStackTrace();
}
mediaPlayer.start();
}
}else {
if (mediaPlayer!=null)
{
if (mediaPlayer.isPlaying())
{
mediaPlayer.stop();
}
}
}
}
}
但是当我播放互联网 mp3 时,错误消息是无法打开http://p9snltngh.bkt.clouddn.com/Fs3M3Cq_Mkex9AsunJt57N22JQp2 : java.io.FileNotFoundException: No content provider i can't understand because “<a href= “http://p9snltngh.bkt.clouddn.com/FhEbUwGYcmQbXIVMVzd0GyPypDVC” rel="nofollow noreferrer">http://p9snltngh.bkt.clouddn.com/FhEbUwGYcmQbXIVMVzd0GyPypDVC”这个uri可以播放
解决方案
两个链接都有效
public void playSound(String uri){
MediaPlayer mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setDataSource(uri);
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
}
推荐阅读
- ruby-on-rails - 如何为评级使用嵌套属性
- spring-boot - Springboot 配置属性范围或数组
- tcl - 如何从项目打开的 url 链接中删除端口号 :8000?
- spring - Thymeleaf 发布表单不提交数据
- c++builder - DBX 错误:驱动程序无法正确初始化
- hibernate - how to write a method using hibernate which returns boolean
- c# - 在单元测试用例中捕获抛出的异常的问题
- angular - 如何将数据从角度材料对话框传递到父组件?
- python - 在 Django 2.0 中使用 URL
- javascript - Detect Swipe without affecting click event