只是为了确认。当通过适用于 Android 的 OpenSL ES 创建的音频播放器完成播放缓冲区时,该缓冲区是否会被垃圾收集器自动释放?还是我需要自己释放缓冲区?
如果是后者,我需要一些帮助。但就目前而言,我不会发布任何代码,直到我被告知我需要自己做......
最佳答案
缓冲队列本身并不实际分配缓冲内存(或需要释放它),您将指针传递给您通过“enqueue”函数分配的内存。播放完缓冲区后,您需要释放分配的内存。
由于 OpenSL ES 是 C++ 中的原生库,它对垃圾回收一无所知,您为 API 分配的任何内存都必须由您释放,并且您创建的对象必须调用“销毁”来清理内部内存.
关于android - 是否需要释放来自 OpenSL ES 音频播放器的已完成缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6031213/