VideoView无法正常工作

时间:2011-11-17 14:04:03

标签: android android-videoview mediacontroller

我尝试打开这样的mp4视频:

VideoView myVideoView = new VideoView(this);
myVideoView.setVideoURI(Uri.parse(path[idImage]));
myVideoView.setLayoutParams(new LinearLayout.LayoutParams(
                                            LayoutParams.FILL_PARENT,
                                            LayoutParams.FILL_PARENT));
myVideoView.setMediaController(new MediaController(this));
myVideoView.requestFocus();
myVideoView.start();

但我在屏幕上看不到任何内容。我错过了什么?

我的xml文件如下所示:

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

    <ViewFlipper android:id="@+id/details"
        android:layout_width="fill_parent" android:layout_height="fill_parent">
    </ViewFlipper>

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

</LinearLayout>

2 个答案:

答案 0 :(得分:2)

我知道我正在回答一个已经回答的问题,但它可能会帮助那些通过搜索登陆这里的人。

我无法从API示例中获取Android的VideoView来播放任何文件,但这是我的错误。

  1. 我从根目录键入路径,例如 /videoFileName.mp4 ,我应该在其中键入sdcard,如 /sdcard/videoFileName.mp4

  2. 我的索尼Ercisson Xperia Arc在我通过adb运行我的应用程序的同时作为USB大容量设备存储连接,因此内置SD卡已卸载且无法找到文件。当我在三星Galaxy S上尝试使用相同的代码时,我发现了这一点,当连接时它的行为有所不同。

答案 1 :(得分:0)

您需要在布局中声明VideoView标记,例如

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

并使用:

实例化
VideoView videoView = (VideoView) findViewById(R.id.VideoView);
MediaController mediaController = new MediaController(this);
mediaController.setAnchorView(videoView);
// Set video link (mp4 format )
Uri video = Uri.parse(path[idImage]);
videoView.setMediaController(mediaController);
videoView.setVideoURI(video);
videoView.start();