【问题标题】:Recorded Video Plays Sideways in Android Samsung Device录制的视频在 Android 三星设备中横向播放
【发布时间】:2013-02-03 21:05:49
【问题描述】:

我正在做一个 Android 视频应用程序,我在其中录制了一些视频并管理列表中的视频。视频拍摄正确,但它们以侧面显示(我的意思是,如果我的设备实际上处于横向模式,我可以在纵向模式下观看视频)。任何人都可以让我知道如何解决这个问题。我正在使用下面的代码来记录

Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult(cameraIntent,120);

我会将视频存储在图库中。任何与自定义视频录制相关的代码也很有帮助。您可以在下图中看到我的问题。我尝试了很多方法,比如输入setDisplayOrientation()setOrientationHint()。我想知道这个问题根本没有解决方案吗?那么有多少开发视频应用程序。请有人帮助我。

我还提到了thisthis 链接。

【问题讨论】:

    标签: android android-video-player


    【解决方案1】:

    您显示的录制代码似乎正确。我刚刚用 ICS 在我的三星 S2 上测试了代码,视频以正确的方向播放。 您没有显示回放的代码。也许这就是问题所在:

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == 120) { // i personally prefer using a constant here
            VideoView videoView = (VideoView) findViewById(R.id.videoView);
            videoView.setVideoURI(data.getData());
            videoView.start();
        }
    }
    

    videoView 的布局 xml 非常简单:

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

    如果上述方法不起作用,您还可以尝试将 EXTRA_SCREEN_ORIENTATION 设置为不同的值。在我的设备上,它似乎没有什么不同,尽管 YMMV。这是代码,另外我还添加了一些额外内容,因为您要求提供更多自定义视频录制代码:

    private static final int RECORD_VIDEO = 120;
    
    private void startRecording() {
        Intent cameraIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
        cameraIntent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION, ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        cameraIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0); // low quality
        cameraIntent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 5); // limit to 5 seconds
        startActivityForResult(cameraIntent, RECORD_VIDEO);
    }
    

    还有更多额外内容:http://developer.android.com/reference/android/provider/MediaStore.html#EXTRA_DURATION_LIMIT

    【讨论】:

      【解决方案2】:

      这有点小技巧(尽管根据this post,没有办法以不同的方向录制视频),但对于 API 级别 14 及以上,您可以使用 Media Effects 旋转您的VideoView.

      【讨论】:

        【解决方案3】:

        确认您的 main.xml 文件中有备用布局(纵向和横向)。这通常应该照顾您设备的两个方向。 两个 xml 文件应该在不同的 Layout 文件夹中具有相同的名称(例如 main.xml)。

        【讨论】:

        • 如果你有示例代码,你能不能给出。我不明白你在说什么,当我按照你说的那样尝试时仍然遇到问题。
        • 我说这可能只是一个小方向问题,因为您的代码运行正常。使用 Ctrl+F11 切换模拟器的方向,看看它是否适用于横向或纵向。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多