我有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;
}
中引发了异常
那么,在LogCat中阻止此异常的推荐方法是什么?
这就是我的尝试:
1-抓住setVideoURI
例外。
2- Use ProGaurd assumenosideeffects class android.util.Log
,但这仅适用于应用程序上下文(而MediaPlayer是系统上下文)。
出于兼容性原因,我不建议使用覆盖系统类。