HeJ小鼠!
我想创建一个包含3个按钮的程序。每个按钮启动一个新活动(视频视图),在启动时自动播放res / raw文件夹中的视频。下面的代码不显示任何错误,但只是不起作用,即它启动视频视图但不显示任何视频。
我的主要活动:
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);
}
播放视频的我的VideoActivity
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();
}
谢谢!
答案 0 :(得分:0)
尝试在VideoActivity的startVideo
方法中调用onCreate
,然后如果您不希望视频开始自动暂停。
此外,如果您在模拟器上进行测试,有时我遇到了与videoView有关的问题,但在实际设备上它总能正常工作。
希望它有所帮助。
答案 1 :(得分:0)
您必须在发件人和收件人方面为您的意图提供相同的密钥。
更改如下:
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
}
答案 2 :(得分:0)
VideoActivity
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);
}