使用action_view intent以横向模式播放视频

时间:2015-03-03 07:29:33

标签: android android-intent video-streaming landscape

使用本机媒体播放器从服务器流式传输视频。

            Intent i = new Intent(Intent.ACTION_VIEW);
            i.setDataAndType("URL TO VIDEO", "video/mp4");
            startActivity(i);

它会成功地在午餐视图中显示已安装的玩家。但问题是当我播放视频时。默认情况下,它不会让我更改方向为横向。是不是我能做到的。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

我不确定你是否可以这样做,因为你正在打开第三方应用来播放你的视频,可能是那个播放器没有为你提供控制来处理代码的方向。

您可以通过以下代码

获得结果

创建布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/frameLayoutRoot"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >

   <VideoView
        android:id="@+id/surfaceViewFrame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="center">
   </VideoView>

</RelativeLayout>

现在创建一个新的活动/ playeractivity并在setcontent视图中设置上述布局

//In OnCreate
VideoView videoView = (VideoView)findViewById(R.id.surfaceViewFrame);

videoView.setVideoURI(Uri.parse(yoururl/local/server));
        videoView.start();
        progressBarWait.setVisibility(View.VISIBLE);
        videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

            @Override
            public void onPrepared(final MediaPlayer mp) {
                mp.start();
                mp.setOnVideoSizeChangedListener(new MediaPlayer.OnVideoSizeChangedListener() {
                    @Override
                    public void onVideoSizeChanged(MediaPlayer mediaPlayer, int i, int i2) {
                       // Log.e(TAG, "Changed");
                        progressBarWait.setVisibility(View.GONE);
                        mp.start();
                    }
                });

            }
        });

        videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

        public void onCompletion(MediaPlayer mp) {
            finish();

        }
    });

在Menifest.xml中以方向取消您的活动

 <activity android:name=".YourPlayerActivity" 
android:screenOrientation="portrait/landscape"/>