java - Android - MediaPlayer,如何在流式传输时捕获损坏的网址

标签 java android eclipse try-catch android-mediaplayer

我有一个小应用程序,它从网络上的不同网址进行流式传输,我想处理无效/损坏的网址,我已经尝试了提供的各种捕获,但即使在流式传输损坏的文件时,我也可以在日志中看到我的日志,我看到的只是

 Error (1,-1004) 

这是我目前的代码

 mediaPlayer.reset();
        try {
            mediaPlayer.setDataSource(urlString);
            Log.w("myApp", "0");
            mediaPlayer.prepareAsync(); // might take long! (for buffering, etc)
            playPauseButton.setVisibility(View.INVISIBLE);
             progressBar1.setVisibility(View.VISIBLE);
            mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mediaPlayer) {
                    // TODO Auto-generated method stub

                    duration = mediaPlayer.getDuration();
                    textDuration.setText(getDurationString(duration/1000));
                    progress.setMax(duration);
                    playPauseButton.setChecked(true); 
                    mediaPlayer.start();
                    playPauseButton.setVisibility(View.VISIBLE);
                     progressBar1.setVisibility(View.INVISIBLE);
                }
            });

        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            Log.w("myApp", "1");
            e.printStackTrace();
        } catch (SecurityException e) {
            // TODO Auto-generated catch block
            Log.w("myApp", "2");
            e.printStackTrace();
        } catch (IllegalStateException e) {
            // TODO Auto-generated catch block
            Log.w("myApp", "3");
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            Log.w("myApp", "4");
            e.printStackTrace();
        }

感谢您的帮助。)

最佳答案

MediaPlayer.OnErrorListener 可能会有所帮助。这不是一个异常(exception),所以你无法捕获它。

onError(MediaPlayer mp, int what, int extra);

官方文档。 MEDIA_ERROR_IO 是额外代码。

public static final int MEDIA_ERROR_IO

Added in API level 17
File or network related operation errors.

Constant Value: -1004 (0xfffffc14)

关于java - Android - MediaPlayer,如何在流式传输时捕获损坏的网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20942702/

相关文章:

java - 如何使用 Jetty 客户端获取基于请求的连接所花费的时间

Android 后台处理,即使进程已被用户明确停止(长按主页按钮并删除所有最近的应用程序)

java - Android BindingConversion 在 kotlin 中不起作用?

java - 在 Java 中解码并替换字符串中的十六进制值

java - 持久化数据库枚举实例字段值而不是枚举值

android - 使用 webview 播放 youtube 视频时出现问题

java - 如何在eclipse ADT中打开项目并自动导入LIbrary Projects依赖项

Eclipse:如何根据文件扩展名设置文件编码

java - 变量无法解析

java - 将 Eclipse 中的 "Find References"限制为仅引用我的代码