Android 无法使用VideoView播放资产文件夹中的视频
我无法使用VideoView中的MediaController播放资产文件夹中的视频。 我查看了许多堆栈溢出的答案,但都不起作用。 当我使用原始文件夹或SD卡文件夹路径时,它可以完美地工作 下面是我的代码:Android 无法使用VideoView播放资产文件夹中的视频,android,android-videoview,android-video-player,android-assets,mediacontroller,Android,Android Videoview,Android Video Player,Android Assets,Mediacontroller,我无法使用VideoView中的MediaController播放资产文件夹中的视频。 我查看了许多堆栈溢出的答案,但都不起作用。 当我使用原始文件夹或SD卡文件夹路径时,它可以完美地工作 下面是我的代码: private void getVideoFromAssets() { try { // Start the MediaController MediaController mediacontroller = new MediaControl
private void getVideoFromAssets() {
try {
// Start the MediaController
MediaController mediacontroller = new MediaController(
VideoViewActivity.this);
mediacontroller.setAnchorView(videoview);
// Get the URL from String VideoURL
Uri video = Uri.parse("file:///android_asset/test.mp4");
videoview.setMediaController(mediacontroller);
videoview.setVideoURI(video);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
videoview.requestFocus();
videoview.setOnPreparedListener(new OnPreparedListener() {
// Close the progress bar and play the video
public void onPrepared(MediaPlayer mp) {
videoview.start();
}
});
}
在更改各自的路径时,此代码适用于原始卡和sd卡文件夹,但不适用于资产。
任何帮助都将不胜感激。谢谢。请尝试:
AssetFileDescriptor afd = getAssets().openFd(fileName);
player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(), afd.getLength());
"file:///android_asset/...“仅适用于Web视图,您需要像这样传递Uri”content://your.authority/path.to.resource“也就是说,您需要创建自定义ContentProvider并覆盖其openAssetFile,这将使用MediaPlayer。但是我使用MediaController类。谢谢@pskink。请提供一个例子。如何扩展某个类并重写其中一个方法的例子?好的,我知道了。我会尝试让你知道输出。