2017-08-14 43 views
0

我開始使用Superpowered本地SDK進行音樂播放器應用項目,但是我從卡片的End-Of- SuperpoweredAdvancedAudioPlayer回調中的文件事件。請原諒我,如果我這樣做是錯誤的,因爲我是使用Android的本地JNI C端的新手。任何企圖或幫助非常感謝。先謝謝你。如何在超級高效播放器回調中通知java或'收聽'文件結束事件

static void playerEventCallbackA(void *clientData, SuperpoweredAdvancedAudioPlayerEvent event, void *value) { 

      SuperpoweredAdvancedAudioPlayer *playerA = *((SuperpoweredAdvancedAudioPlayer **)clientData); 
     if (event == SuperpoweredAdvancedAudioPlayerEvent_LoadSuccess) { 

     }else if (event == SuperpoweredAdvancedAudioPlayerEvent_EOF && !playerA->looping) { 


     *The event to notify Java for end of file takes place here. 
Please help to suggest any line of code or method that can notify 
Android when this event kicks in. Personally, I have searched online, 
all I found similar was an "Interface" method on java side which 
I have no idea about. Please help* 

    }else if (event == SuperpoweredAdvancedAudioPlayerEvent_LoadError) { 

      delete playerA; 
     } 
    } 

回答

1

從本地層調用Java比從Java調用本機層更加複雜。此外,阻止通過Java處理音頻的本機線程不是一種推薦的做法(您會聽到音頻故障)。因此我建議採取一種反向的方法。

當你得到EOF時設置一些變量,然後定期從Java調用該變量(如每50毫秒),調用本地層。