我是android开发的菜鸟,我正在尝试实现libstreaming example 3 sample project。一切正常,除了我无法将视频预览的方向更改为prtrait。无论我更改什么设置,它都会拒绝旋转并保持横向模式。我知道可以实现纵向方向,因为spydroid使用libstreaming并以纵向方向显示。非常感谢您的帮助。

我的相关代码:

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); //<--Does Nothing

    // Configures the SessionBuilder
    mSession = SessionBuilder.getInstance()
            .setContext(getApplicationContext())
            .setAudioEncoder(SessionBuilder.AUDIO_AAC)
            .setAudioQuality(new AudioQuality(8000, 16000))
            .setVideoEncoder(SessionBuilder.VIDEO_H264)
            .setSurfaceView(mSurfaceView)
            .setPreviewOrientation(90) //<--Does Nothing
            .setCallback(this)
            .build();

最佳答案

在示例3代码中,似乎方向在 list 中是固定的。只需将其留空(甚至不要设置为纵向)

        <activity
        android:windowSoftInputMode="stateHidden"
        android:name="net.majorkernelpanic.example3.MainActivity"
        android:label="@string/app_name"
        android:theme="@android:style/Theme.DeviceDefault.Wallpaper.NoTitleBar">

这将使您的 Activity 改变方向。

要强制定位,请在onCreate的末尾(在selectQuality();行之后)添加以下行
    mSession.setPreviewOrientation(90);
    mSession.configure();

09-29 21:07