Android - 无法播放此视频!!这是怎么回事?

时间:2012-08-26 07:15:34

标签: android android-videoview mediacontroller

我正在尝试创建一个应用,用户可以在其中播放应用内视频(已在应用中打包的视频)。没有SDCard或在线直播。

但无论我使用何种策略,我都无法在我的应用中运行简单的.mp4视频。 我试过在assests文件夹中放置视频,但没有运气。 我已尝试将视频放在res/raw文件夹中,再次没有运气。

每次我运行应用程序时都会说 - 无法播放此视频。

早在我使用VideoView运行视频时,现在我正在使用MediaController以及VideoView错误消息不断出现

请帮忙,因为它在很长一段时间内都很麻烦,无论我使用什么解决方案,我仍然无法播放简单的视频。

我的活动代码:

    public class MainActivity extends Activity {

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);

            MediaController mediac;
            VideoView video1;
            mediac = new MediaController(this);        
            video1 = (VideoView) findViewById(R.id.vv01);
            video1.setMediaController(mediac);
            mediac.setAnchorView(video1);

            video1.setVideoURI(Uri.parse("android.resource://com.example.test/raw/aa"));
video1.start();

        } 

我的xml文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >


    <VideoView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/vv01"
        android:contentDescription="@string/app_name"
        />

</LinearLayout>

我尝试运行应用程序时的日志cat:

08-26 13:27:31.023: I/dalvikvm(624): threadid=3: reacting to signal 3
08-26 13:27:31.593: I/dalvikvm(624): Wrote stack traces to '/data/anr/traces.txt'
08-26 13:27:31.643: I/dalvikvm(624): threadid=3: reacting to signal 3
08-26 13:27:31.913: I/dalvikvm(624): Wrote stack traces to '/data/anr/traces.txt'
08-26 13:27:31.923: D/dalvikvm(624): GC_CONCURRENT freed 147K, 3% free 9345K/9607K, paused 7ms+7ms
08-26 13:27:32.053: I/dalvikvm(624): threadid=3: reacting to signal 3
08-26 13:27:32.083: I/dalvikvm(624): Wrote stack traces to '/data/anr/traces.txt'
08-26 13:27:32.533: I/dalvikvm(624): threadid=3: reacting to signal 3
08-26 13:27:32.564: I/dalvikvm(624): Wrote stack traces to '/data/anr/traces.txt'
08-26 13:27:33.033: I/dalvikvm(624): threadid=3: reacting to signal 3
08-26 13:27:33.063: I/dalvikvm(624): Wrote stack traces to '/data/anr/traces.txt'
08-26 13:27:33.613: D/MediaPlayer(624): getMetadata
08-26 13:27:33.973: E/MediaPlayer(624): error (1, -2147483648)
08-26 13:27:34.093: E/MediaPlayer(624): Error (1,-2147483648)
08-26 13:27:34.093: D/VideoView(624): Error: 1,-2147483648

1 个答案:

答案 0 :(得分:0)

您必须在onStart(以及媒体控制器)之外声明VideoView。

如果不起作用,请使用try / catch命令和Log.e