我正在尝试在我的应用中播放视频.它必须嵌入.
我浏览了"在Android中播放视频文件"主题.
我可以使用VideoView播放我的视频,如本讨论中所述.但是有一些问题.
我需要全屏视频,如何将VideoView拉伸到全屏?这会延长视频吗?
我根本不需要默认的播放/前进/停止按钮.基本上我需要连续循环播放视频.
我在这里尝试了MediaPlayer类,但它从未奏效.如果我的视频文件在res/raw目录中,字符串格式应该是什么样的?我真的不希望从SD卡播放视频文件.它如何与应用程序捆绑在一起?
如果这两种方法中的任何一种都有效,我会更好.
这是我的代码:
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();
Run Code Online (Sandbox Code Playgroud)
奇怪的是,评论的网址是有效的(带有sdcard的网址).另一个不起作用.我尝试了很多从"file:// res/raw/demo.3gp"到"demo"的组合.
访问该文件的正确字符串是什么?
Jav*_*tor 49
<?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>
Run Code Online (Sandbox Code Playgroud)
另外,添加mediacontroller还可以让你使用控制器.
小智 8
我解决了这个问题:
1.要删除继续/暂停按钮,请删除媒体控制器.对于循环问题,OnCompletionListener以便在视频到达结束时再次启动:
videoView.setOnCompletionListener(
new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
videoView.start();
}
});
Run Code Online (Sandbox Code Playgroud)
2.要调整视频,重写方法onMeasure()中VideoView是这样的:
public class MyVideoView extends VideoView {
public MyVideoView(Context context) {
super(context);
}
@Override
protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
{
setMeasuredDimension(480,800);
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这个帖子已经有几个星期了,但你不必将视频文件复制到SD卡上就可以了.使用以下内容但插入您的包名称而不是"com.yourcompany.yourproject":
videoView.setVideoURI(Uri.parse("android.resource://com.yourcompay.yourproject/" + R.raw.yourvideoresource));
| 归档时间: |
|
| 查看次数: |
47088 次 |
| 最近记录: |