【问题标题】:Android: how to run video from resource folderAndroid:如何从资源文件夹运行视频
【发布时间】:2012-04-19 12:58:14
【问题描述】:

我已经看到了与我类似的其他问题,但问题仍然存在。 提前致谢。

这是代码

package com.akk.mysecondvideo;

import android.app.Activity;
import android.content.Context;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.widget.VideoView;

public class MySecondVideo extends Activity {

Context context;
MediaPlayer mp;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    VideoView videoView = (VideoView)findViewById(R.id.VideoView);
    //MediaController mediaController = new MediaController(this);
    // mediaController.setAnchorView(videoView);
    //videoView.setMediaController(mediaController);

    Uri uri = Uri.parse("android.resource://com.akk.mysecondvideo/"
            + R.raw.bommarillu);

    videoView.setVideoURI(uri);

    //mp = new MediaPlayer();
    //mp = MediaPlayer.create(context, R.raw.bommarillu);


    videoView.start(); 
}
}

当我尝试运行它时,它显示强制关闭,并且 logcat 在第 28 行显示错误 NULLPOINTEREXCEPTION,即 videoView.setVideoURI(uri);

VideoView 是 main.xml 的一部分。 main.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"
>
<VideoView 
     android:layout_height="fill_parent"
     android:layout_width="fill_parent" 
     android:id="@+id/VideoView" />
</LinearLayout>

【问题讨论】:

标签: android


【解决方案1】:

您是否检查过uri 是否为null

尝试在videoView.setVidoeURI(uri) 之前添加这一行:

if (null == uri)
   Toast.makeText(this, "URI IS NULL", Toast.LENGTH_LONG).show();

如果显示 toast 通知,则 URI 未正确解析

【讨论】:

  • 感谢回复,但现在显示无法播放此视频
  • 视频的格式是否受支持? developer.android.com/guide/appendix/… 转到此表的视频部分
  • 好像是这样,因为我的视频是.mp4格式,好像不支持,谢谢!
  • @Selvin 对之前的评论感到抱歉,但它说它支持 .mp4 和 .3gp 格式,而我也无法运行
  • 它说,不能播放视频,不支持视频!
【解决方案2】:

我不认为有任何问题。但是我想告诉你一些建议

  • 以不同于小部件名称的 XML 命名小部件,例如 myVideoView 而不是 VideoView
  • videoView.setMediaController(new MediaController(this));
  • videoView.requestFocus();

检查这是否有效。我有和你一样的代码,我会创建一个项目并给你我的输入。

到时候试试这个

【讨论】:

    【解决方案3】:

    试试这个示例代码:

    Uri uri = Uri.parse("android.resource://com.akk.mysecondvideo/raw/bommarillu");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      相关资源
      最近更新 更多