public class ViewActivity extends AppCompatActivity {
private RelativeLayout.LayoutParams r_params;
private RelativeLayout relativeLayout;
private RelativeLayout layMain;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.viewtest);
layMain = findViewById(R.id.laymain); //空的layout
addMedia(0, new VideoView(this));
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
handler.removeCallbacks(this);
addMedia(1, new VideoView(ViewActivity.this));
}
}, 5000);
}
private void addMedia(int index, final VideoView videoView) {
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
params.width = (index== 0 ? 1080 : 640);
params.height = (index== 0 ? 1920 : 360);
params.topMargin = (index== 0 ? 200 : 100);
params.leftMargin = (index== 0 ? 0 : 200);
videoView.setLayoutParams(params);
Uri uri = Uri.parse(Environment.getExternalStorageDirectory() + "/09bc7cac2a9d8203bdf9538bf22f93bc.mp4");
videoView.setVideoURI(uri);
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
mp.setLooping(true);
}
});
videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
videoView.stopPlayback();
return true;
}
});
videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.reset();
mp.release();
}
});
layMain.addView(videoView, index);
layMain.bringChildToFront(videoView);
layMain.updateViewLayout(videoView, params);
}
后添加的videoView被覆寫了,不是覆寫先添加的VideoView的
uj5u.com熱心網友回復:
我實驗了,改成先后添加2個ImageView是正常的換成VideoView和ImageView混合添加,不管哪個先添加也是正常的
反正混合添加、更改index都是正常的,為什么2個VideoView就不行,改成2個SurfaceView也是不行
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/36437.html
標籤:Android
