0
私はこの問題を1週間は働いていましたが、何も見つかりませんでした。私を助けてください。誰でも。すべてが歓迎です。 アプリケーションが実行され、1番目の動画を再生した後、クラッシュします。それはエミュレータ(アンドロイド3.2)、アンドロイド2.3とHTC携帯電話で正常に動作しますが、アンドロイド2.2とDreambook w7でクラッシュします。ビデオが終了した後、メディアプレーヤーがクラッシュする
これは、アンドロイド2.2以降でのVideoViewクラスの違いのためです。誰かが私がどこでVideoViewのソースコードを見つけることができるかを知っていますか?私はそれを私のプロジェクトに取り入れます。または、VideoViewにはないオープンソースのビデオプレーヤーがいくつかありますか?ここで
は私のコードです:
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFormat(PixelFormat.TRANSLUCENT);
setContentView(R.layout.main);
video=(VideoView)findViewById(R.id.video);
/*some code for downloading playlist and missed videos here*/
/*Then, launches some background theards for updating tham*/
/*Then, downloading some picture from URL and setting it to image view*/
/*Then, setting up another background theard for setting current time to text view*/
//So, here is player:
File clip=new File(Environment.getExternalStorageDirectory(),
playList[FLcurrentVideo].substring(2, playList[FLcurrentVideo].length()-1)+".mp4");
if (FLReady[FLcurrentVideo]==1) {
video.setVideoPath(clip.getAbsolutePath());
video.requestFocus();
video.start();
sendLog(); //send some info to web server
}
else { //if video didn't exists
if (FLReady[FLcurrentVideo] == 0) {
new CheckOutVideos(false).execute(FLcurrentVideo);
}
}
/*Setting completion, for starting play next video after previous done...*/
video.setOnCompletionListener(new OnCompletionListener(){
@Override
public void onCompletion(MediaPlayer mp) {
Log.d ("111", "on Completion"); //... but, this NEVER colled
int FL = 1;
while (FL == 1) {
if (FLcurrentVideo<count-1) FLcurrentVideo++;
else FLcurrentVideo = 0;
File clip=new File(Environment.getExternalStorageDirectory(),
playList[FLcurrentVideo].substring(2, playList[FLcurrentVideo].length()-1)+".mp4");
if (FLReady[FLcurrentVideo]==1) {
FL=0;
video=(VideoView)findViewById(R.id.video);
video.setVideoPath(clip.getAbsolutePath());
video.requestFocus();
video.start();
}
else {
FL = 1;
if (FLReady[FLcurrentVideo] == 0) {
new CheckOutVideos(false).execute(FLcurrentVideo);
}
}
}
}
});
}
"nullポインタ例外が" colling OnCompletionた後があります:あなたのOnComplitionで
09-22 11:50:54.553: ERROR/AndroidRuntime(4529): FATAL EXCEPTION: main
09-22 11:50:54.553: ERROR/AndroidRuntime(4529): java.lang.NullPointerException
09-22 11:50:54.553: ERROR/AndroidRuntime(4529): at android.widget.VideoView$3.onCompletion(VideoView.java:347)
09-22 11:50:54.553: ERROR/AndroidRuntime(4529): at android.media.MediaPlayer$EventHandler.handleMessage(MediaPlayer.java:1304)
09-22 11:50:54.553: ERROR/AndroidRuntime(4529): at android.os.Handler.dispatchMessage(Handler.java:99)
09-22 11:50:54.553: ERROR/AndroidRuntime(4529): at android.os.Looper.loop(Looper.java:123)
09-22 11:50:54.553: ERROR/AndroidRuntime(4529): at android.app.ActivityThread.main(ActivityThread.java:4627)
09-22 11:50:54.553: ERROR/AndroidRuntime(4529): at java.lang.reflect.Method.invokeNative(Native Method)
09-22 11:50:54.553: ERROR/AndroidRuntime(4529): at java.lang.reflect.Method.invoke(Method.java:521)
09-22 11:50:54.553: ERROR/AndroidRuntime(4529): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-22 11:50:54.553: ERROR/AndroidRuntime(4529): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-22 11:50:54.553: ERROR/AndroidRuntime(4529): at dalvik.system.NativeStart.main(Native Method)