我正在尝试在我的应用程序中播放视频。它必须是嵌入式的。
我浏览了"Play Video Files in Android"线程。
我可以使用在此讨论中提到的VideoView播放我的视频。但也有一些问题。
我像在here中一样尝试了MediaPlayer类,但它从来都不起作用。如果我的视频文件在res/raw目录中,字符串格式应该是什么样子的?我真的不想从sdcard播放视频文件。如何将其与应用程序捆绑在一起?
如果这两种方法中的任何一种都有效,我会过得更好。
这是我的代码:
videoHolder = new VideoView(this);
// videoHolder = (VideoView)findViewById(R.id.videoview);
LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
videoHolder.setLayoutParams(params);
videoHolder.setMediaController(new MediaController(this));
setContentView(videoHolder);
//
//
//// I tested and found that it works fine for .wmv, .3gp and .mp4
//// videoHolder.setVideoURI(Uri.parse("file:///sdcard/video.3gp"));
videoHolder.setVideoURI(Uri.parse("res/raw/demo.3gp"));
videoHolder.requestFocus();
videoHolder.start();
奇怪的是,评论的url可以正常工作(使用sdcard的那个)。另一个不起作用。我尝试了许多组合,从"file:// res/raw/demo.3gp“到"demo”。
访问该文件的正确字符串是什么?
发布于 2011-02-09 18:35:12
全屏播放无需任何编码
在包含videoview的xml上应用以下布局格式,它肯定会以全屏模式播放视频。就像它在运行我的一样。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<VideoView android:id="@+id/myvideoview"
android:layout_width="fill_parent"
android:layout_alignParentRight="true"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:layout_height="fill_parent">
</VideoView>
</RelativeLayout>
此外,添加媒体控制器也会给你提供控制器来使用。
发布于 2010-08-03 01:22:49
我已经解决了这个问题:
OnCompletionListener
,这样当视频到达结尾时,它就会再次开始:videoView.setOnCompletionListener(
new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
videoView.start();
}
});
VideoView
中的onMeasure()
方法,如下所示:public class MyVideoView extends VideoView {
public MyVideoView(Context context) {
super(context);
}
@Override
protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
{
setMeasuredDimension(480,800);
}
}
发布于 2010-08-25 23:49:17
我知道这个帖子已经有几个星期了,但是你不需要把视频文件拷贝到SD卡来播放它。使用以下命令,但插入您的包名,而不是"com.yourcompany.yourproject":
videoView.setVideoURI(Uri.parse("android.resource://com.yourcompay.yourproject/" + R.raw.yourvideoresource));
https://stackoverflow.com/questions/1574654
复制相似问题