如何从Android的资产文件夹的子文件夹播放视频 [英] how to play video from sub folder of assets folder in android
问题描述
我想打从资产中文件夹的子文件夹中的视频。
I am trying to play video from sub-folder's of Assets folder.
我的资产文件夹中创建一个文件夹XYZ。
I have created one folder xyz in assets folder.
这是我的code:
String uriPath = "android.resource://"+ getPackageName() + "/assets/xyz/"+"age.mp4";
videoView.setVideoURI(Uri.parse(uri));
// videoView.setMediaController(new MediaController(this));
videoView.setMediaController(null);
videoView.requestFocus();
videoView.start();
但它给我的错误 E / MediaPlayer的(11068):错误(1,-2147483648)
也试过这code:
public void Play(String fileName) {
AssetFileDescriptor descriptor = null;
try {
String[] array = getApplicationContext().getAssets().list("long_a");
Toast.makeText(MainActivity.this,
"file is exists " + array.length, Toast.LENGTH_LONG)
.show();
descriptor = getApplicationContext().getAssets().openFd(
"xyz/say.mp4");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
long start = descriptor.getStartOffset();
long end = descriptor.getLength();
MediaPlayer mediaPlayer = new MediaPlayer();
try {
mediaPlayer.setDataSource(descriptor.getFileDescriptor(), start,
end);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
mediaPlayer.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mediaPlayer.start();
}
感谢您提前帮助:)
推荐答案
替换此:
字符串uriPath =android.resource://+ getPackageName()+/资产/ XYZ /+age.mp4;
String uriPath = "android.resource://"+ getPackageName() + "/assets/xyz/"+"age.mp4";
本:
AssetFileDescriptor AFD = getAssets()openFd(XYZ / age.mp4)。
player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
AssetFileDescriptor afd = getAssets().openFd("xyz/age.mp4"); player.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
,并确保您从布局获得视频查看的ID,如:
VideoView videoView =(VideoView)findViewById(R.id.videoView1);
VideoView videoView =(VideoView)findViewById(R.id.videoView1);
像创建的MediaController:
的MediaController的MediaController =新的MediaController(本);结果
mediaController.setAnchorView(videoView);
MediaController mediaController= new MediaController(this);
mediaController.setAnchorView(videoView);
设置的MediaController这样的:
videoView.setMediaController(的MediaController);
videoView.setMediaController(mediaController);
这篇关于如何从Android的资产文件夹的子文件夹播放视频的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!