为何无法使用AudioFormat类的公开常量SAMPLE_RATE_HZ_MIN却能使用SAMPLE_RATE_UNSPECIFIED?
为何无法使用AudioFormat类的公开常量SAMPLE_RATE_HZ_MIN却能使用SAMPLE_RATE_UNSPECIFIED?
哈哈,其实你看源码里的注释已经把原因写得明明白白啦!那个// never unhide就是关键~
咱们拆解一下:
SAMPLE_RATE_HZ_MIN虽然在源码里被定义成public,但它属于Android的隐藏API。官方在构建对外发布的SDK时,会把这类标记为“永远不对外暴露”的常量从公开接口中剔除掉——说白了就是不让咱们开发者用,哪怕你能在源码里瞅见它。这类API一般是系统内部自己用的,官方怕开发者依赖后,后续版本改动导致应用出问题,所以故意藏起来了。- 而
SAMPLE_RATE_UNSPECIFIED是官方明确对外开放的合法API常量,它被包含在公开的SDK接口里,所以你能正常引用和使用。
要是你非得用类似SAMPLE_RATE_HZ_MIN的功能,建议自己定义一个合理的最小值(比如根据不同设备的兼容情况设置),别去碰这些隐藏API哦,不然应用很容易在不同Android版本上翻车。
备注:内容来源于stack exchange,提问作者Style-7
相关产品推荐
相关产品推荐

