VideoView 不会自动布局... (Android/Eclipse)

VideoView won't autolay... (Android/Eclipse)

首先,我不使用模拟器,因为我的 D270 不支持 运行,所以我只是将我的项目的 .apk 发送到我的 k012 来试用我的应用程序... 我的 VideoView 不会播放名为 'slideshow' 的视频,该视频应该会在我启动我的应用程序时播放...以下是我的视频的属性: 宽度:480,高度:360,帧率:30fps,长度:32s ... 我的视频(幻灯片)位于我的 res/raw 文件夹中... 试了很多方法还是不行...

P.S。我是新手 :D 谢谢你

这是我的代码: activity_titlepage.xml

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.cookdroid.MainActivity"
tools:ignore="MergeRootFrame" >

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_centerVertical="true"
    android:orientation="vertical" >

    <Button
        android:layout_width="170dp"
        android:layout_height="wrap_content"
        android:text="@string/btn_basicrecipes" />

    <Button
        android:layout_width="170dp"
        android:layout_height="wrap_content"
        android:text="@string/btn_appetizers" />

    <Button
        android:layout_width="170dp"
        android:layout_height="wrap_content"
        android:text="@string/btn_soups" />

    <Button
        android:layout_width="170dp"
        android:layout_height="wrap_content"
        android:text="@string/btn_riceandnoodles" />

    <Button
        android:layout_width="170dp"
        android:layout_height="wrap_content"
        android:text="@string/btn_fishandshellfish" />

    <Button
        android:layout_width="170dp"
        android:layout_height="wrap_content"
        android:text="@string/btn_meatandpoultry" />

    <Button
        android:layout_width="170dp"
        android:layout_height="wrap_content"
        android:text="@string/btn_vegetables" />

    <Button
        android:layout_width="170dp"
        android:layout_height="wrap_content"
        android:text="@string/btn_desserts" />

    <Button
        android:layout_width="170dp"
        android:layout_height="wrap_content"
        android:text="@string/btn_drinks" />
</LinearLayout>

<VideoView
    android:id="@+id/videocatplayer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_alignParentEnd="true"
    android:layout_alignParentTop="true"
    android:layout_toEndOf="@+id/linearLayout1" 
    />

Recipecategories.java
package com.protosmack.thefoodofthephilippines;

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.VideoView;

public class Recipecategories extends Activity {
    VideoView catplayer;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_titlepage);
        Uri videosrc=Uri.parse("android.resource://" + getPackageName() + "/raw/slideshow");
        VideoView catplayer= (VideoView) findViewById(R.id.videocatplayer);
        catplayer.setVideoURI(videosrc);
        catplayer.start();
    }
}

问题可能是因为当您调用 catplayer.start() 时您的视频尚未准备好播放,因此请使用 setOnPreparedListener 尝试此示例。 同时删除 VideoView catplayer 的声明之一,您在代码中声明了两次。

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_titlepage);
        Uri videosrc=Uri.parse("android.resource://" + getPackageName() + "/raw/slideshow");
        VideoView catplayer= (VideoView) findViewById(R.id.videocatplayer);
        catplayer.setVideoURI(videosrc);
        catplayer.requestFocus();
//try, set an setOnPreparedListener in order to know when the video file is ready for playback
catplayer.setOnPreparedListener(new OnPreparedListener() {

            public void onPrepared(MediaPlayer mediaPlayer) {
              catplayer.start();
            }
        });
    }