mediaPlayer setDataSource不起作用

2 人关注

我试着在我的安卓应用程序上添加一个视频,就像页面一样。 媒体播放器

但也有错误。

例如,为什么这一行不起作用。

mediaPlayer.setDataSource(url);

还有这句话:

mediaPlayer.prepare(); // might take long! (for buffering, etc)

我不明白,因为它是developer.android.com的例子。 你能帮助我理解吗?

谢谢你(如果我的问题很愚蠢,我很抱歉)。

1 个评论
出现什么错误?写出你看到的信息。
android
seikida
seikida
发布于 2015-10-28
4 个回答
Blackbelt
Blackbelt
发布于 2022-10-23
已采纳
0 人赞同

setDataSource(String) 抛出的 IOException IllegalArgumentException ,你并没有捕捉到。你应该把这两个调用包在一个 try-catch 块中

Alex Kucherenko
Alex Kucherenko
发布于 2022-10-23
0 人赞同

要更加注意,阅读错误信息。 "未处理的异常:java.io.IOException" .因此,你所需要的是 尝试-捕捉 block

zulu_papa
zulu_papa
发布于 2022-10-23
0 人赞同

正如其他两个答案所建议的,你的代码需要用try/catch块包围。此外,如果是从网络上获取的,最好的做法是使用

mediaPlayer.prepareAsync();

希望这对你有帮助,希望你的程序能正常工作。然而,几分钟后,我发现prepareAsync()方法不建议用于播放MP3文件。

Yor PG
Yor PG
发布于 2022-10-23
0 人赞同

Try this:

if(mediaPlayer != null ){
                    if (mediaPlayer.isPlaying()){mediaPlayer.stop();}
                    mediaPlayer.reset(); //this line is important!
                    String path = File.separator + "sdcard" + File.separator + utilsFields.repoDirRoot + File.separator + media.mp4;
                    try {
                        mediaPlayer.setDataSource(path);
                    }catch (Exception ignored){}
                    try {
                        mediaPlayer.prepare();
                    }catch (Exception ignored){}