我开始在C中实现我的游戏音频部分,我已经看到有2个音频框架可用AAudio(https://developer.android.com/ndk/guides/audio/aaudio/aaudio.html)和OpenSL(https://developer.android.com/ndk/guides/audio/opensl/index.html).
这两者之间有什么区别?
解决方法:
OpenSL ES
从Android 2.3(Gingerbread)开始的设备支持OpenSL.但是,自Android 4.2(或4.3?)以来,OpenSL(高性能音频)的快速混音器可用,并且所有设备都不支持.
这是什么意思?根据我的观察,当不使用快速混音器时,Java AudioTrack比OpenSL更快(具有更低的延迟).
使用快速混音器时,音频延迟实际上很好而且很低.要实现这一点,您的设备必须支持快速混音器,配置参数应该匹配.
需要考虑的另一个问题是GearVR上的“噼里啪啦”,可能是因为线程优先级发生了变化.
要使用OpenSL实现音频,您可能需要参考NDK示例,或者甚至更好地参考https://github.com/Over17/AndroidAudioFastPathSample – 修复实际使用快速路径.
A音频
将在今年某个时候发布的Android O上得到支持.除非您不希望您的游戏仅与Android O兼容,否则您可能不希望这样.
我还没有多少经验.
动机
为什么你真的想要为你的游戏提供原生音频部分?如果它不是合成器,专业音频应用程序或VR游戏,我真的不会打扰原生C音频并去JavaAudioTrack.它可靠,与所有设备兼容,并且对于非专业应用程序具有可接受的延迟.
标签:android,c,audio,opensl 来源: https://codeday.me/bug/20190823/1700452.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。