在 Android 中使用 OpenSL ES 而不是 AudioTrack 的原因应该是什么?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/11196912/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
What should be reasons to use OpenSL ES instead of AudioTrack in Android?
提问by Alexander Kulyakhtin
Currently I'm using AudioTrack passing to it audio data from native layer to play.
目前我正在使用 AudioTrack 将音频数据从本机层传递给它来播放。
It seems I can use OpenSL ES in the native layer instead of AudioTrack in Java. What are the supposed advantages OpenSL ES gives as opposed to AudioTrack?
似乎我可以在本机层中使用 OpenSL ES 而不是 Java 中的 AudioTrack。与 AudioTrack 相比,OpenSL ES 具有哪些优势?
采纳答案by codetiger
OpenSL ES:
OpenSL ES:
Advantages:
好处:
- Low Level Audio API in Android
- Device Independent on Android Phones
- Good for Gaming
- Android 中的低级音频 API
- 独立于 Android 手机的设备
- 适合游戏
Disadvantages:
缺点:
- Supports only on 2.3+ os
- 仅支持 2.3+ 操作系统
AudioTrack:
音轨:
Advantages:
好处:
- High Level API
- 高级 API
Disadvantages:
缺点:
- Works on Java layer and Native code has to call javalayer to play audio.
- 适用于 Java 层,本机代码必须调用 javalayer 才能播放音频。