//添加视频播放视图
Runnable addplayerview=new Runnable() { @Override
public void run() {
if(closeoropenplayer==1){
if(ifopenplayer)
{
Log.v("!ifopenplayer",""+ifopenplayer);
return;
}
ifopenplayer=true;
Log.v("ifopenplayer",""+ifopenplayer);
//创建视图布局参数
//LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(800,500);
//设置视图位置偏移
params.setMargins(0,100,0,0);
// sfv=(SurfaceView)PgyerReg.super.cordova.getActivity().findViewById(R.id.surfaceView);
sfv=new SurfaceView(cordova.getActivity()); txtv=new TextView(cordova.getActivity());
txtstr+="1111111111";
txtv.setText(txtstr); //设置控件背景颜色为透明
sfv.setBackgroundColor(Color.BLACK); //设置播放时打开屏幕
// sfv.getHolder().setKeepScreenOn(true);
myholder=sfv.getHolder();
myholder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
myholder.addCallback(new SurfaceViewLis());
PgyerReg.super.cordova.getActivity().addContentView(sfv, params);
//PgyerReg.super.cordova.getActivity().setContentView(sfv, params);
PgyerReg.super.cordova.getActivity().addContentView(txtv, params);
}else
{
if(sfv!=null) {
//删除添加的视图
((ViewGroup) sfv.getParent()).removeView(sfv);
ifopenplayer = false;
Log.v("closeoropenplayer", "这个是要关闭掉播放界面" + closeoropenplayer);
}
}
}
}; private class SurfaceViewLis implements SurfaceHolder.Callback { @Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// player.release();
txtstr += "333333333";
txtv.setText(txtstr);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
txtstr+="22222222222";
txtv.setText(txtstr);
try {
player = new MediaPlayer();
//设置视频大小
myholder.setFixedSize(79,36);
player.setDisplay(sfv.getHolder());
player.seekTo(player.getCurrentPosition());
player.reset();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setDataSource(path);
// player.setDataSource("http://192.168.0.131:81/1.mp4"); player.prepare();
Log.v("myholder",""+myholder.isCreating()+","+myholder.toString());
txtv.setText("222222222222");
player.start(); Log.v("当前视频的宽高", player.isPlaying()+","+player.getVideoWidth()+","+player.getVideoHeight());
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} @Override
public void surfaceDestroyed(SurfaceHolder holder) {
player.release();
txtstr+="4444444444444";
txtv.setText(txtstr);
} }
Runnable addplayerview=new Runnable() { @Override
public void run() {
if(closeoropenplayer==1){
if(ifopenplayer)
{
Log.v("!ifopenplayer",""+ifopenplayer);
return;
}
ifopenplayer=true;
Log.v("ifopenplayer",""+ifopenplayer);
//创建视图布局参数
//LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(800,500);
//设置视图位置偏移
params.setMargins(0,100,0,0);
// sfv=(SurfaceView)PgyerReg.super.cordova.getActivity().findViewById(R.id.surfaceView);
sfv=new SurfaceView(cordova.getActivity()); txtv=new TextView(cordova.getActivity());
txtstr+="1111111111";
txtv.setText(txtstr); //设置控件背景颜色为透明
sfv.setBackgroundColor(Color.BLACK); //设置播放时打开屏幕
// sfv.getHolder().setKeepScreenOn(true);
myholder=sfv.getHolder();
myholder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
myholder.addCallback(new SurfaceViewLis());
PgyerReg.super.cordova.getActivity().addContentView(sfv, params);
//PgyerReg.super.cordova.getActivity().setContentView(sfv, params);
PgyerReg.super.cordova.getActivity().addContentView(txtv, params);
}else
{
if(sfv!=null) {
//删除添加的视图
((ViewGroup) sfv.getParent()).removeView(sfv);
ifopenplayer = false;
Log.v("closeoropenplayer", "这个是要关闭掉播放界面" + closeoropenplayer);
}
}
}
}; private class SurfaceViewLis implements SurfaceHolder.Callback { @Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// player.release();
txtstr += "333333333";
txtv.setText(txtstr);
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
txtstr+="22222222222";
txtv.setText(txtstr);
try {
player = new MediaPlayer();
//设置视频大小
myholder.setFixedSize(79,36);
player.setDisplay(sfv.getHolder());
player.seekTo(player.getCurrentPosition());
player.reset();
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setDataSource(path);
// player.setDataSource("http://192.168.0.131:81/1.mp4"); player.prepare();
Log.v("myholder",""+myholder.isCreating()+","+myholder.toString());
txtv.setText("222222222222");
player.start(); Log.v("当前视频的宽高", player.isPlaying()+","+player.getVideoWidth()+","+player.getVideoHeight());
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} @Override
public void surfaceDestroyed(SurfaceHolder holder) {
player.release();
txtstr+="4444444444444";
txtv.setText(txtstr);
} }
解决方案 »
- WebView和ListView的交互使用,异步加载的问题
- 如何更好地进行android framework层的学习,求过来人指点一二啊!!!各位对framework层感兴趣的都来看看瞧瞧噢!!
- 参加了中国移动创意大赛,请支持一下
- eclipse + android x86调试全过程,欢迎大家拍砖
- 求助,gridview裏面能放別的東西嗎??
- 100分求解android中activity的系统回收问题
- 链接WEB服务有时报错BufferedInputStream is Closed
- android的strings.xml使用问题
- 虚拟机UI主界面竖屏,但内容横屏,求高大大解答!!!
- android 使用surfaceview 内存泄漏,大神帮忙看一哈
- android5.1系统的一体机上电子白板使用path.quadTo()会出现毛刺,请问有什么好的建议吗
- 在线等 急~~~~~~
[code=java]sfv.setZOrderOnTop(true);[/code]
SurfaceView 要设置这个