我的Android应用程序需要同时和同步播放多个音乐曲目(例如,鼓音轨和人声音轨一起播放,但可以单独播放)。使用SoundPool
的努力没有结果 - 即使我在两个连续的行中调用SoundPool.play()
,也总会出现明显的延迟。
JetPlayer课程似乎非常适合我的需要,但似乎没有人使用它 - 文档最后更新四年前,维护者的网站已关闭,相关的{{ 3}}工具不能在现代版本的Python上运行,wxPython(与wxPython C ++断言崩溃)没有明显的变通方法/常见问题解答。
问题:JetPlayer / JetCreator是否放弃了软件,或者我是否还要继续努力让它运行?
推论如果它仍在使用中,是否有人可以就下列wxPython
错误提出建议?
File "/usr/local/lib/wxPython-3.0.0.0/lib/python2.7/site-packages/wx-3.0-osx _cocoa/wx/_gdi.py", line 5317, in __init__ _gdi_.AutoBufferedPaintDC_swiginit(self,_gdi_.new_AutoBufferedPaintDC(*args, **kwargs)) wx._core.PyAssertionError: C++ assertion "window->MacGetCGContextRef() != NULL" failed at /BUILD/wxPython-src-3.0.0.0/src/osx/carbon/dcclient.cpp(195) in wxPaintDCImpl(): using wxPaintDC without being in a native paint event
答案 0 :(得分:1)
由于你的问题很老,我希望我的答案仍能帮助你或其他任何人。
为JET Creator安装Python
作为读取JETCreator在较新版本的python中不受支持,因此请使用:
按照本教程 http://www.tutorialspoint.com/android/android_jetplayer.html 用于安装python和wxpython。 安装Python和JETCreator非常棘手,所以你必须非常小心。 我不得不多次尝试,直到它正常工作。
然后您可以从github或其他任何地方下载DEMo-Data! JETCreator读入MIDI文件并生成JET文件
在JETCreator中,您现在可以为曲目设置MUTE标志。 您必须记住静音标志的“dezimal-number”,因为它们代表静音轨道的“二进制数”。您必须在Android项目中实现此编号。
在eclipse中使用您创建的数据:
LOAD数据
mJet = JetPlayer.getJetPlayer();
mJet.setEventListener(this);
AssetFileDescriptor afd = this.getResources().openRawResourceFd(R.raw.demo);
mJet.loadJetFile(afd);
CALL JETplayer
mJet.clearQueue();
mJet.queueJetSegment(0, 0, -1, 0, 0, (byte) 0);
mJet.play();
SET MUTE flages,例如:at on OnClickListener
mJet.setMuteFlags(0b1110, false); //0b1110 = 14
停止时你的JETPlayer
mJet.release();
如果有任何问题,请不要犹豫!
PS:MIDI文件不支持“人声”,因此无法播放人声。