[問題] 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