2016-07-06 3 views
0

я хочу, используя единство родного вызова метода MediaPlayer setOnCompletionListener следующим образом:как позвонить MediaPlayer setOnCompletionListener использованием единства нативный метод

mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 
@Override 
     public void onCompletion(MediaPlayer mp) { 
      Log.i(LOGTAG, "onComplete hit"); 
      mp.stop(); 
      mp.release(); 
     } 
}); 

я знаю, я могу поставить выше код на андроид, и генерировать банку, а затем положить это проект единства. но я хочу, чтобы выигрыш, что я люблю

AndroidJavaObject mediaPlayer = new AndroidJavaObject("android/media/MediaPlayer"); 



    IntPtr setSurfaceMethodId = AndroidJNI.GetMethodID(mediaPlayer.GetRawClass(),"setSurface","(Landroid/view/Surface;)V"); 
    jvalue[] parms = new jvalue[1]; 
    parms[0] = new jvalue(); 
    parms[0].l = androidSurface; 


    AndroidJNI.CallVoidMethod(mediaPlayer.GetRawObject(), setSurfaceMethodId, parms); 

    mediaPlayer.Call("setDataSource", filePath); 

ответ

0

я есть решить мой вопрос:

общественного класса CompletionCallback: AndroidJavaProxy {

public CompletionCallback() 
    :base("android.media.MediaPlayer$OnCompletionListener") { 
    } 

    void onCompletion(AndroidJavaObject mp) { 
     CommonUtil.showToast("finish"); 
    } 
} 

использованием AndroidJavaProxy