如何从MediaPlayer捕获FileNotFoundException?

时间:2016-06-17 12:18:03

标签: android

我正在使用MediaPlayer来抓取网址中的视频:

 try {
        mediaPlayer = new MediaPlayer();
        mediaPlayer.setDataSource(this, uri);
    }catch (FileNotFoundException e){
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

当我尝试使用url设置数据源时,例如,已经取消了,我在logcat中收到以下错误:

  

无法在客户端打开文件;尝试服务器端:   java.io.FileNotFoundException:没有内容提供者:   http://example.com/examplevideo.mp4

但是,我的catch{}并没有在上面的代码中捕获这个,我需要它这样做,我可以显示错误消息等...

有没有办法在我的代码中捕获这个FileNotFoundException?

提前致谢

3 个答案:

答案 0 :(得分:0)

我不知道如何捕捉这个特定的例外。但您可以使用以下内容来捕获任何类型的异常。

    try {
        mediaPlayer = new MediaPlayer();
        mediaPlayer.setDataSource(this, uri);
    }catch (FileNotFoundException e){
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }

答案 1 :(得分:0)

try {
        mediaPlayer = new MediaPlayer();
        mediaPlayer.setDataSource(this, uri);
    }catch (FileNotFoundException e){
        e.printStackTrace();
    } catch (IOException e) {
         Log.i("your tag",e.toString());
    }

and look at the log with the tag you whant

答案 2 :(得分:0)

感谢大家的回复。

我忘了提到该文件来自外部服务器,但是采用了与Pramod建议类似的方法,但是根据我的需要进行了修改。

 /**
     * Checks if an external file on a server exists.
     * @param urlString The file URL
     * @return true if file exists, false if does not
     */
    public boolean checkExternalFileExists(String urlString){
        try {
            URL url = new URL(urlString);
            int response = ((HttpURLConnection)url.openConnection()).getResponseCode();
            return response == HttpURLConnection.HTTP_OK;
        }
        catch (FileNotFoundException e) {
            return false;
        }catch (MalformedURLException e) {
            return false;
        } catch (IOException e) {
            return false;
        }
    }

由于