Java 点击按钮时启动视频-Android

Java 点击按钮时启动视频-Android,java,android,button,video,android-videoview,Java,Android,Button,Video,Android Videoview,嘿 我想创建一个有3个按钮的程序。每个按钮都会启动一个新的活动(videoview),该活动在启动时自动播放我的res/raw文件夹中的视频。下面的代码没有显示任何错误,只是不起作用,即它启动videoview但不显示任何视频 我的主要活动: public class MainActivity extends Activity { String uri; @Override protected void onCreate(Bundle savedInstanceState) { su

我想创建一个有3个按钮的程序。每个按钮都会启动一个新的活动(videoview),该活动在启动时自动播放我的res/raw文件夹中的视频。下面的代码没有显示任何错误,只是不起作用,即它启动videoview但不显示任何视频

我的主要活动:

public class MainActivity extends Activity {

String uri;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


}

public void playsquirrelmp4(View v) {
    Intent VideoIntent = (new Intent(this, VideoActivity.class));
    VideoIntent.putExtra("android.resource://" + getPackageName() + "/"+ R.raw.squirrel, uri);
    startActivity(VideoIntent);
}
我播放视频的视频活动

public class VideoActivity extends Activity {

VideoView vid;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.videoview);

    vid = (VideoView) findViewById(R.id.videoview);
    vid.setMediaController(new MediaController(this));

    Intent myIntent = getIntent();

    String uri = myIntent.getStringExtra("uri");
            Bundle b = myIntent.getExtras();

    b.getString(uri);

}

public void startVideo(String uriString) {

    Uri uri = Uri.parse(uriString);
    vid.requestFocus();
    vid.setVideoURI(uri);
    vid.start();
}

谢谢大家!

尝试在视频活动的
onCreate
方法中调用
startVideo
,如果不想启动视频,则自动暂停

另外,如果您在emulator上进行测试,有时我在videoView上遇到问题,但在实际设备上,它总是运行良好


希望有帮助。

尝试在视频活动的
onCreate
方法中调用
startVideo
,如果不想启动视频,则自动暂停

另外,如果您在emulator上进行测试,有时我在videoView上遇到问题,但在实际设备上,它总是运行良好


希望它能有所帮助。

您必须在发送方和接收方都有相同的额外密钥。
更改如下:

public void playsquirrelmp4(View v) {
    Intent VideoIntent = (new Intent(this, VideoActivity.class));
    VideoIntent.putExtra("uri", "android.resource://" + getPackageName() + "/"+ R.raw.squirrel, uri);
    startActivity(VideoIntent);
}
您的startVideo()方法未被调用,因此您不能期望视频启动。
试试下面的方法吧

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.videoview);

    vid = (VideoView) findViewById(R.id.videoview);
    vid.setMediaController(new MediaController(this));

    Intent myIntent = getIntent();

    String uri = myIntent.getStringExtra("uri");
            Bundle b = myIntent.getExtras();

    startVideo( b.getString(uri) ); // call startVideo here

}

您必须在发送方和接收方拥有相同的密钥,以便进行额外设置。
更改如下:

public void playsquirrelmp4(View v) {
    Intent VideoIntent = (new Intent(this, VideoActivity.class));
    VideoIntent.putExtra("uri", "android.resource://" + getPackageName() + "/"+ R.raw.squirrel, uri);
    startActivity(VideoIntent);
}
您的startVideo()方法未被调用,因此您不能期望视频启动。
试试下面的方法吧

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.videoview);

    vid = (VideoView) findViewById(R.id.videoview);
    vid.setMediaController(new MediaController(this));

    Intent myIntent = getIntent();

    String uri = myIntent.getStringExtra("uri");
            Bundle b = myIntent.getExtras();

    startVideo( b.getString(uri) ); // call startVideo here

}

从调试信息来看,来自MainActivity的VideoIntent似乎无法将视频路径发送到VideoActivity。我从URI字符串中获得了一个NullPointerException错误。我认为有些代码来自

视频活动

Intent myIntent = getIntent();
String uri = myIntent.getStringExtra("uri");
Bundle b = myIntent.getExtras();

startVideo(b.getString(uri));
无法从Mainactivity接收uri:

    public void playsquirrelmp4(View v) {
    Intent VideoIntent = (new Intent(this, VideoActivity.class));
    VideoIntent.putExtra("android.resource://" + getPackageName()
    + "/"+   R.raw.squirrel, uri);
    startActivity(VideoIntent);
}

从调试信息来看,来自MainActivity的VideoIntent似乎无法将视频路径发送到VideoActivity。我从URI字符串中获得了一个NullPointerException错误。我认为有些代码来自

视频活动

Intent myIntent = getIntent();
String uri = myIntent.getStringExtra("uri");
Bundle b = myIntent.getExtras();

startVideo(b.getString(uri));
无法从Mainactivity接收uri:

    public void playsquirrelmp4(View v) {
    Intent VideoIntent = (new Intent(this, VideoActivity.class));
    VideoIntent.putExtra("android.resource://" + getPackageName()
    + "/"+   R.raw.squirrel, uri);
    startActivity(VideoIntent);
}

从调试信息来看,来自MainActivity的VideoIntent似乎无法将视频路径发送到VideoActivity。我从URI字符串中得到了一个NullPointerException错误。从调试信息中,似乎MainActivity的VideoIntent无法将视频路径发送到VideoActivity。我从URI字符串中获得了一个NullPointerException错误。