我开发了一个播放视频的应用程序..播放视频的代码就在这里..
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视频时。它在全屏显示,字符显示为挤压。我需要使用mattes(视频上方和下方两个水平黑条)以宽屏格式播放。 有什么建议吗?
答案 0 :(得分: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。
希望这有帮助!
答案 1 :(得分:1)
您似乎正在使用
强制视频与屏幕的四个边对齐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>