如何在超级高效播放器回调中通知java或'收听'文件结束事件
问题描述:
我开始使用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;
}
}
答
从本地层调用Java比从Java调用本机层更加复杂。此外,阻止通过Java处理音频的本机线程不是一种推荐的做法(您会听到音频故障)。因此我建议采取一种反向的方法。
当你得到EOF时设置一些变量,然后定期从Java调用该变量(如每50毫秒),调用本地层。