1

我是资深的开发人员,但也是 Android 开发的初学者。我试图在我的 Android 应用程序上获取视频视图以显示来自网络的视频。当我启动片段时,我看到的只是带有白色背景的 progressDialog 加载屏幕。在我将设备的方向从纵向更改为横向后,视频将立即开始播放,这表明我只是布局设置错误。但是,当我最初以横向开始时,视频也不会播放。如果我切换到纵向,然后再切换回横向,它将播放。这是一种非常奇怪的行为。

我确实尝试研究过这个问题,却发现在 Android 设备上播放视频似乎是大多数 Android 开发人员的主要痛点。甚至谷歌开发者 API 文档似乎也不完整。下面是我的代码,也许有人可以看到我缺少的东西。

视频片段.java

@Override
public void onActivityCreated(Bundle savedInstanceState)
{
    super.onActivityCreated(savedInstanceState);
    video = (VideoView) getView().findViewById(R.id.standardVideoView);
    getActivity().getWindow().setFormat(PixelFormat.TRANSLUCENT);

    MediaController mediaController = new MediaController(getActivity());
    mediaController.setMediaPlayer(video);
    video.setMediaController(mediaController);

    video.setVideoURI(Uri.parse("http://<PRIVATE DOMAIN>.com/KLFY_20130806112335457AB.mp4"));
    video.requestFocus();

    video.start(); // this is called successfully every time the fragment is created

    progressDialog = ProgressDialog.show(getActivity(), "", "Buffering video...", true);
    progressDialog.setCancelable(true);



    video.setOnPreparedListener(new MediaPlayer.OnPreparedListener()
    {
        // this event is only raised after the device changes to landscape from portrait
        public void onPrepared(MediaPlayer mp)
        {
            Log.i("DEBUGGING", "VIDEO PREPARED");
            progressDialog.dismiss();


        }
    });
}

video_fragment.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/videoViewLayout"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:background="#000000">

<VideoView
    android:id="@+id/standardVideoView"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_gravity="center" />

</LinearLayout>

我在这里先向您的帮助表示感谢!

4

0 回答 0