全屏播放视频

时间:2009-10-15 19:53:14

标签: android video playback

我正在尝试在我的应用中播放视频。它必须嵌入。

我浏览了"Play Video Files in Android"帖子。

我可以使用VideoView播放我的视频,如上所述 讨论。但是有一些问题。

  1. 我需要全屏视频,如何将VideoView拉伸到全屏? 这会延长视频吗?

  2. 我根本不需要默认的播放/前进/停止按钮。基本上 我需要连续循环播放视频。

  3. 我在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“。

    访问该文件的正确字符串是什么?

5 个答案:

答案 0 :(得分:49)

无需进行任何编码即可将视频播放到全屏模式

在包含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>

另外,添加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>

希望这有助于某人:)