我做了以3gp格式播放电影的应用程序。 一切都在智能手机上运行良好。 当我在平板电脑上安装app时,在播放电影时有一些奇怪的事情。 整个布局是纵向模式,但电影旋转90度并以这种方式播放风景(与肖像模式相同的大小)。
我已在清单文件android:screenOrientation="portrait"
中设置VideoView
的活动。
我根本不想以横向模式显示。
在自动旋转屏幕禁用时在智能手机上 - 默认方向为纵向。 平板电脑上的默认方向是横向。 平板电脑的另一件事是当我使用Youtube应用程序并在纵向模式下选择一些电影时,会自动旋转视频,调整大小并固定为横向模式。
我不确定硬件设置或应用程序是否可以更改。
目前在平板电脑上,我的应用程序正在以纵向模式旋转视图播放电影。
修改: 清单文件:
<activity android:name=".Video" android:screenOrientation="portrait" />
代码:
ByteArrayInputStream inputStream = new ByteArrayInputStream(cursor.getBlob(2)); //get from database
stream = inputStream;
if (stream == null)
throw new RuntimeException("stream is null");
try {
temp = File.createTempFile("movie", "3gp");
} catch (IOException e1) {
e1.printStackTrace();
}
temp.deleteOnExit();
tempPath = temp.getAbsolutePath();
try {
out = new FileOutputStream(temp);
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
byte buf[] = new byte[128];
do {
try {
numread = stream.read(buf);
} catch (IOException e) {
e.printStackTrace();
}
if (numread <= 0)
break;
try {
out.write(buf, 0, numread);
} catch (IOException e) {
e.printStackTrace();
}
} while (true);
try {
stream.close();
} catch (IOException ex) {
Log.e("ERROR", "error: " + ex.getMessage(), ex);
}
final VideoView myVideoView = new VideoView(this);
myVideoView.setVideoPath(tempPath);
myVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer arg0) {
myVideoView.start();
}
});
myVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
mp.reset();
myVideoView.setVideoPath(tempPath);
}
});
tl.addView(myVideoView); //add videoview to table layout
layout.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rl"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/tlomain">
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tlayout"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
</TableLayout>
</RelativeLayout>
根据纵向模式,平板电脑屏幕上的所有元素都很好,只有视频旋转90度。
你可以看到它使用Youtube看起来如何: http://i.stack.imgur.com/qwP5S.jpg
电影已旋转。在我的智能手机上,Youtube应用中的同一部电影在水平视图中设置为正常。
我不知道如何在我的应用中更改它。 是硬件设置吗?如果平板电脑设备想要打开3gp,mp4格式,它会旋转90度以准备好横向模式吗?