【问题标题】:playback video full screen全屏播放视频
【发布时间】:2010-12-07 04:12:23
【问题描述】:

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

我浏览了"Play Video Files in Android" 线程。

我可以使用 VideoView 播放我的视频,如本文所述 讨论。但是有几个问题。

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

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

我尝试了 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”。

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

【问题讨论】:

    标签: android video playback


    【解决方案1】:

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

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

    另外,添加媒体控制器也会为您提供要使用的控制器。

    【讨论】:

    • 但这会拉伸视频 - 打破宽高比
    • 你是对的。但这将表明您的设计不正确,并且您拥有的视频数据不适合全屏宽度
    • 医生吩咐的 ;) 坚持下去
    • 可以全屏显示。但它同时拉伸照片和视频,不正确。
    【解决方案2】:

    我已经解决了这个问题:

    1。 要移除继续/暂停按钮,请移除媒体控制器。对于循环问题 输入OnCompletionListener,这样当视频结束时,它会重新开始:

    videoView.setOnCompletionListener(
            new MediaPlayer.OnCompletionListener() {
            public void onCompletion(MediaPlayer mp) {
                videoView.start();
            }
            });
    

    2。 要调整视频大小,请像这样覆盖 VideoView 中的方法 onMeasure()

    public class MyVideoView extends VideoView {
    
            public MyVideoView(Context context) {
                super(context);
            }
    
            @Override
            protected void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
            {
                 setMeasuredDimension(480,800);
            }
    
        }
    

    【讨论】:

      【解决方案3】:

      我知道这个帖子已经有几个星期了,但您不必为了播放视频文件而将视频文件复制到 SD 卡。使用以下内容,但插入您的包名称而不是“com.yourcompany.yourproject”:

      videoView.setVideoURI(Uri.parse("android.resource://com.yourcompay.yourproject/" + R.raw.yourvideoresource));

      【讨论】:

        【解决方案4】:

        如果您想全屏播放视频,只需将这些代码行添加到您的 Androidmanifest.xml 文件中,即该视频将要播放的活动中。只需在 android manifest 文件中添加这两行即可。

         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>
        

        【讨论】:

          【解决方案5】:

          稍微修改了@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>
          

          希望这可以帮助某人:)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2020-04-11
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多