如何禁用android mediaplayer FileNotFoundException

时间:2014-07-06 08:50:01

标签: java android exception-handling android-mediaplayer

我有VideoView从http协议获取其URI,此URI对我来说非常隐私,但在setVideoURI系统会抛出debugging exception,如下所示:

07-06 10:35:10.920: D/MediaPlayer(7799): java.io.FileNotFoundException: No content provider: ...我的私人网址出现在这里

我将问题追溯到android MediaPlayer(在VideoView中使用)setDataSource

这就是setDataSource中发生的事情:

public void setDataSource(Context context, Uri uri)
        throws IOException, IllegalArgumentException, SecurityException, IllegalStateException {

        /****
            Test if URI is in assets, and of course HTTP (in my case) will not!
        ****/
        AssetFileDescriptor fd = null;
        try {
            ContentResolver resolver = context.getContentResolver();
            fd = resolver.openAssetFileDescriptor(uri, "r");
            if (fd == null) {
                return;

        } catch (SecurityException ex) {
        } catch (IOException ex) {
            /****
                Here is the exception which let me crazy :(
            ****/
        } finally {
            if (fd != null) {
                fd.close();
            }
        }

        /****
            So set HTTP here!
        ****/

        setDataSource(uri.toString());
        return;
 }

实际上openAssetFileDescriptor方法

中引发了异常

那么,在LogCat中阻止此异常的推荐方法是什么?

这就是我的尝试:

1-抓住setVideoURI例外。

2- Use ProGaurd assumenosideeffects class android.util.Log,但这仅适用于应用程序上下文(而MediaPlayer是系统上下文)。

出于兼容性原因,我不建议使用覆盖系统类。

0 个答案:

没有答案