Android:旋转后视频视图不播放

Posted

技术标签:

【中文标题】Android:旋转后视频视图不播放【英文标题】:Android: Videoview does not play after rotate 【发布时间】:2014-06-13 07:33:52 【问题描述】:

我有一个活动,显示屏幕的一半面向用户,另一半面向相反方向的另一个人。面向另一个人的部分有视频视图。 像这样:

在我的活动布局中,我有:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/LinearLayout1"
    android:layout_
    android:layout_
    android:orientation="vertical" >

    <ScrollView
        android:id="@+id/scrollViewTop"
        android:layout_
        android:layout_
        android:layout_margin="10dp"
        android:layout_weight="1"
        android:scrollbars="none"
        android:rotation="180.0" >
        ......
        <VideoView
            android:id="@+id/videoView1"
            android:layout_
            android:layout_ />
        ......
    </ScrollView>
    <LinearLayout
        android:layout_
        android:layout_
        android:orientation="vertical" >

    </LinearLayout>

</LinearLayout>

我使用以下代码设置视频视图:(videofile.mp4)

videoView1 = (VideoView) findViewById(R.id.videoView1);
Uri video = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.videofile);
videoView1.setVideoURI(video);
videoView1.start();

它在没有播放视频的情况下显示黑屏。除视频播放外,其他内容在 180 度旋转中正常显示。

但是,如果我删除 android:rotation="180.0" 行,视频将正常播放。

有没有办法在屏幕旋转时播放视频?

【问题讨论】:

如果我正确识别您的问题,那么您希望在最终用户旋转屏幕时播放视频,对吗?如果是这样,那么您需要为此应用传感器管理器。为什么你把旋转放在滚动视图中? 因为两个人(站在对面)同时看着屏幕。例如。一位顾客和一位收货员。 【参考方案1】:

没有找到合适的解决方案。 我改用walk-around。

首先对父旋转中的视频视图应用旋转。

<VideoView android:id="@+id/videoView1" android:layout_ android:layout_ android:rotation="180.0" />

这将导致布局变为:

然后我们输出视频源(videofile.mp4)进行180度播放。

使用 1 + 2,“好像”视频在另一个方向播放。

【讨论】:

你是怎么输出视频源180度播放的?

以上是关于Android:旋转后视频视图不播放的主要内容,如果未能解决你的问题,请参考以下文章

Android 设定横屏,禁止屏幕旋转,Activity重置 [更新视频播放器相关]

在 android 的视频视图中播放视频时不录制语音

如何强制 iframe 视频在 Android 设备上旋转到横向模式?

旋转屏幕或隐藏播放器时 Android YouTube API 视频暂停

YouTube 视频在 WebView Android 中仅在屏幕旋转时播放音频

Android 从头搭建视频播放器——屏幕旋转处理