我有一個要求,在第一個視頻完成後立即播放第二個視頻。我已經實現了這個功能,但是我看到的問題是視頻轉換之間出現黑屏。我在Galaxy S設備上嘗試這種方法(1 GHZ處理器,512 MB RAM)。逐個播放視頻問題:Android SDK
我已經使用VideoView,SurfaceView,但仍然沒有解決問題。看起來準備視頻需要時間。我使用了推薦的視頻格式(大約500比特率的H264編碼視頻)。考慮到Galaxy S 1 GHZ處理器,這個問題不應該發生。
任何相關的指針將不勝感激。
謝謝! Nilesh製作
下面是代碼:
這裏是代碼。我有兩個視頻:video1和video2。先玩後,我加載Video2。這裏我使用的是videoview
package com.activity;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.net.Uri;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.ViewGroup.LayoutParams;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.VideoView;
public class FirstActivity extends Activity implements OnCompletionListener
{
/** Called when the activity is first created. */
VideoView video;
Toast toast;
boolean first;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
overridePendingTransition(0, 0);
setContentView(R.layout.main);
video = (VideoView) findViewById(R.id.videoView1);
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/"
+ R.raw.video1);
video.setOnCompletionListener(this);
video.setVideoURI(uri);
video.start();
first=true;
}
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
if(first){
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/"
+ R.raw.video1);
video.setOnCompletionListener(this);
video.setVideoURI(uri);
video.start();
first=false;
}
else{
Uri uri = Uri.parse("android.resource://" + getPackageName() + "/"
+ R.raw.video2);
video.setOnCompletionListener(this);
video.setVideoURI(uri);
video.start();
first=true;
}
}
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
ImageView image = new ImageView(this);
image.setBackgroundColor(Color.WHITE);
image.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT));
toast = new Toast(getApplicationContext());
toast.setView(image);
toast.setDuration(Toast.LENGTH_LONG);
toast.show();
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);
return true;
}
}
你能張貼您使用的代碼?這可能會給我們提示問題是什麼。 – 2011-05-05 06:59:22
嗨,我發佈了代碼。 – Nilesh 2011-05-05 07:14:10
第一個和第二個視頻之間的延遲時間有多長? – 2011-05-05 07:25:43