[问题] videoview播放 影片清单 切换会有黑频

楼主: aiweisen (艾维森)   2015-06-04 10:30:45
前面有爬过文 说用frame layout+setOnPreparedListener就可以办到
但是我还是不清楚这个要怎么写
我目前拨放影片的方式 如下
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE); // set no title
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN); // set
// fullscreen
setContentView(R.layout.animation);
Intent data = getIntent(); // 接收从上一activity传来的参数
Bundle bundle = data.getExtras();
String temp = bundle.getString("playList");
temp=temp.substring(temp.indexOf("&")+1, temp.length());
playList = temp.split("&");
v = (VideoView) findViewById(R.id.videoView1);
v.setMediaController(new MediaController(videoView.this));
v.setVideoURI(Uri.parse(sdcardPath + playList[playingIndex]));
v.setSoundEffectsEnabled(v.isSoundEffectsEnabled());
v.requestFocus();
v.start();
v.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
}
});
v.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer arg0) {
playingIndex++;
if (playingIndex < playList.length) {
v.setVideoPath(sdcardPath + playList[playingIndex]);
v.requestFocus();
v.start();
}
}
});
}
也就是等待上一个影片播完 让他跳到setOnCompletionListener后 在拨放下一个影片
但是在切换影片的时候会有黑频出现 造成影片不是很顺
请问一下 哪边有frame layout+setOnPreparedListener +videoview的写法可以参考?
或者是说 上述的做法整体流程又该怎么做?
我自己是这么想 new 两个frame 每一个frame负责一个videoview
当frame1在拨放的时候 在frame2就进入setOnPreparedListener 先把影片加载 先stop
等frame1播完(跳到setOnCompletionListener)的时候
再呼叫frame2的(这边要由frame1呼叫 但我不知道呼叫frame2的什么地方)
frame2收到后就拨放第二个影片
这时frame1又进入setOnPreparedListener 准备下一个影片
无缝拨放影片是这样做吗?

Links booklink

Contact Us: admin [ a t ] ucptt.com