2011-08-10 56 views
0

我开发的应用程序,用于播放视频..播放视频是这里的代码..安卓播放宽屏视频

public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
WindowManager.LayoutParams.FLAG_FULLSCREEN); 

    setContentView(R.layout.videoview); 
    Intent i = getIntent(); 
    Bundle extras = i.getExtras(); 
    filename = extras.getString("videofilename"); 
    mVideoView = (VideoView)findViewById(R.id.videoview); 

    path=filename; 
    if (path == "") { 
     // Tell the user to provide a media file URL/path. 
     Toast.makeText(
       ViewVideo.this, 
       "Please edit VideoViewDemo Activity, and set path" 
         + " variable to your media file URL/path", 
       Toast.LENGTH_LONG).show(); 

    } else { 

      mVideoView.setVideoPath(path); 
      mc = new MediaController(this); 
      mVideoView.setMediaController(mc); 
      mVideoView.requestFocus(); 
      mVideoView.bringToFront(); 
      mVideoView.start(); 

    } 
} 

下面是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/videoview" 
      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> 

的问题是,当我尝试播放宽屏幕16:9视频。它在全屏显示它,字符出现挤压。我需要用宽屏格式(视频上方和下方的两个水平黑条)播放。 有什么建议吗?

+0

您是否也可以发布您的XML布局? – theisenp

+0

我编辑了包含xml的代码..你能否帮我在这里.. – Farhan

+0

可能你需要为VideoView设置布局参数。我已经为其中一个stackoverflow帖子上的视频回放放置了一个Activty的代码。可以参考http://stackoverflow.com/questions/6977382/videoview-in-eclipse-not-playing-on-phone/6977770#6977770 – Shash316

回答

1

这是related question

好像你正迫使视频与屏幕的四边对齐使用

android:layout_alignParentRight="true" 
android:layout_alignParentLeft="true" 
android:layout_alignParentTop="true" 
android:layout_alignParentBottom="true" 

这是摆脱视频的纵横比。请尝试将它放在LinearLayout中:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:gravity="center"> 

    <VideoView android:id="@+id/videoview" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"/> 

</LinearLayout> 
+0

先生,我试过了..它是部分工作..实际上问题是..水平条现在出现在底部;但是,当我删除标题栏以使其可以出现在视频上方时,整个视频就会向上推。你有什么想法吗? – Farhan

+0

尝试在LinearLayout中添加一个android:gravity =“center”字段。我在我的答案中更新了XML。如果你愿意,你可以删除标题栏,但你不需要。 – theisenp

+0

谢谢你这么多先生..它的工作..真的很感谢你的帮助.. – Farhan

1

尝试在垂直linearLayout中使用MediaViewer。

像这样的东西(从我的头顶,所以不要绝对地信任它):

<LinearLayout android:layout_height="match_parent" 
    android:layout_width="match_parent" android:weightSum="9" 
    android:orientation="vertical"> 
    <VideoView android:layout_height="0dp" android:layout_width="0dp" 
     android:layout_weight="6" /> 
</LinearLayout> 

这应该填满屏幕的垂直面积的2/3。

根据需要调整weightSum和layout_weight。

希望这会有所帮助!

+0

可以请详细说明一个更.. ..其实我想动态调整视频播放器的视频..有一些视频不是宽屏,有一些视频是宽屏,宽高比为16:9与遮罩(水平视频下方和上方的黑条),我想我的应用程序动态设置此..你知道是否有任何方式来设置视频的宽高比?请回复 – Farhan

+0

我不知道有一种方法可以设置纵横比...您必须调整VideoView的大小。您应该可以使用提供的代码执行此操作,只需使用LayoutParams将VideoView的layout_weight更改为您所需的任何内容即可。 – Codeman