我正在使用VideoView类播放一些媒体文件,但问题是这些文件驻留在内部存储中,并且由于权限问题而无法仅通过传递其URL来播放。我已经读到这可以通过使用FileDescriptor来克服,但我无法弄清楚如何使用VideoView做到这一点。
到目前为止,我已尝试过类似的内容,但是onPrepared中的代码永远不会到达:
videoView.setOnPreparedListener(new OnPreparedListener() {
public void onPrepared(MediaPlayer mp) {
try {
mp.setDataSource(new FileInputStream(myFile).getFD());
} catch (IOException e) { e.printStackTrace(); }
dialog.dismiss();
}
});
videoView.start();