我正在尝试在我的应用中播放视频。它必须嵌入。
我浏览了"Play Video Files in Android"帖子。
我可以使用VideoView播放我的视频,如上所述 讨论。但是有一些问题。
我需要全屏视频,如何将VideoView拉伸到全屏? 这会延长视频吗?
我根本不需要默认的播放/前进/停止按钮。基本上 我需要连续循环播放视频。
我在here中尝试了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();
奇怪的是,评论的网址是有效的(带有sdcard的网址)。 另一个不起作用。我尝试了很多来自“file://的组合 res / raw / demo.3gp“to only”demo“。
访问该文件的正确字符串是什么?
答案 0 :(得分: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>
另外,添加mediacontroller还可以让你使用控制器。
答案 1 :(得分:8)
我已经解决了这个问题:
1。
要删除继续/暂停按钮,请删除媒体控制器。对于循环问题
放OnCompletionListener
,以便在视频到达结尾时再次启动:
videoView.setOnCompletionListener(
new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
videoView.start();
}
});
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);
}
}
答案 2 :(得分:6)
我知道这个帖子已经有几个星期了,但你不必将视频文件复制到SD卡上就可以了。使用以下命令,但插入您的包名称而不是“com.yourcompany.yourproject”:
videoView.setVideoURI(Uri.parse("android.resource://com.yourcompay.yourproject/" + R.raw.yourvideoresource));
答案 3 :(得分:4)
如果您想全屏播放视频,只需在Androidmanifest.xml文件中添加这些代码行,即在此视频播放的活动中。只需在android清单文件中添加这两行。
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:configChanges="orientation|screenSize"
就像在我的androidmanifest.xml文件中一样,我添加了它
<activity
android:name="com.appliconic.straminglivevideo.MainActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:configChanges="orientation|screenSize"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
答案 4 :(得分:4)
修改了@Javanator的答案,这不会延长视频:
<?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="match_parent"
android:layout_height="match_parent"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true">
</VideoView>
</RelativeLayout>
希望这有助于某人:)