2011-07-05 12 views
0

サービスを使用して、バックグラウンドでオーディオファイルを再生します。MediaPlayerのSetOnCompletionListenerが機能しません。

これは私のPreviewServicesクラスです。

私はその問題がどこにあるか私を提案してください

MusicScreen.this.preview.player.setOnCompletionListener(新OnCompletionListener()

この行にNULLポインタ例外がスローされます。

Yを知らない
package com.hungama.myplay.activity; 
import java.io.IOException; 
import android.app.Service; 
import android.content.Intent; 
import android.media.MediaPlayer; 
import android.media.MediaPlayer.OnBufferingUpdateListener; 
import android.media.MediaPlayer.OnCompletionListener; 
import android.net.Uri; 
import android.os.Binder; 
import android.os.Bundle; 
import android.os.IBinder; 
import android.util.Log; 
import android.widget.MediaController; 
import android.widget.Toast; 

public class PreviewServices extends Service { 
private static final String TAG = "PreviewServices"; 
public static MediaPlayer player; 
protected DataManager dataManager = DataManager.getInstance(); 
String song_uri, url; 
private IBinder myBinder; 
private boolean isplaying; 

@Override 
public IBinder onBind(Intent intent) { 
    return null; 
} 

public class MyBinder extends Binder { 
    PreviewServices getService() { 
    return PreviewServices.this; 
    } 
} 

@Override 
public void onCreate() { 
    Log.d(TAG, "onCreate " + song_uri); 

} 

@Override 
public void onDestroy() { 
player.stop(); 

} 

public void onPause() { 

    player.pause(); 
} 

public double duration() { 
    return player.getDuration(); 
} 

public void onStart(Intent intent, int startid) { 
    Bundle b = intent.getExtras(); 
    song_uri = b.getString("song_uri"); 
    Uri path = Uri.parse(song_uri); 

    player = MediaPlayer.create(this, path); 

    player.setLooping(false); // Set looping 
    player.start(); 
/*player.setOnCompletionListener(new OnCompletionListener() { 

public void onCompletion(MediaPlayer mp) { 
    // TODO Auto-generated method stub 
Log.d("song is completed","song is not playing now"); 
dataManager.setPreview_play(true); 

} 
}); 
*/ 

} 
} 

My PreviewServices is working fine, 

in My Activity i want to show a message when my song will complete. 

m using this code for this purpose. 

    PreviewServices preview=new PreviewServices(); 




MusicScreen.this.preview.player.setOnCompletionListener(new OnCompletionListener() { 



public void onCompletion(MediaPlayer mp) { 

// TODO Auto-generated method stub 

     Log.d("song is complete","song complete"); 

        } 

       }); 

事前に

感謝。

のGauravグプタ

答えて

0

あなたのコードが適切に表示されていると、より多くの回答を得ることができます。すべてのコード行には、先頭に4つのスペースまたはタブが必要です。修正して修正してください。それが壊れるところ

x = MusicScreen.this 
y = x.preview 
z = y.player 
z.setOnCompletionListener(ETC. 

が次にあなたが見ることができます:あなたが行うことができます

単純なことは、(あなたは、x、y、zのために適切なクラスを指定します)、このような行を分割です。それ以外は、私はあなたのプログラムを理解していないので、私は助けることができません...

関連する問題