首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nexus 9初级抽样率

Nexus 9初级抽样率
EN

Stack Overflow用户
提问于 2016-03-23 08:21:08
回答 2查看 260关注 0票数 1

我有一个使用OpenSL ES的应用程序。当我尝试在Nexus9 6.0.1上使用它时,我听到一种噪音,好像我有错误的采样率。在其他设备上,一切都没问题。

我的SLDataFormat_PCM结构:

代码语言:javascript
复制
SLDataFormat_PCM format_pcm = {
            SL_DATAFORMAT_PCM,
            aChannels,
            48000 * 1000,
            SL_PCMSAMPLEFORMAT_FIXED_16,
            SL_PCMSAMPLEFORMAT_FIXED_16,
            aChannels == 2 ? SL_SPEAKER_FRONT_LEFT | SL_SPEAKER_FRONT_RIGHT
                           : SL_SPEAKER_FRONT_CENTER,
            SL_BYTEORDER_LITTLEENDIAN
    };

当我在这个结构中改变采样率(+/- 1Hz)时,输出听起来没问题,但是我收到了一条AudioTrack调试消息:

W/AudioTrack: AUDIO_OUTPUT_FLAG_FAST denied by client; transfer 1, track 47999 Hz, output 48000 Hz

如果有48000赫兹,为什么我在快速模式下有问题?

我使用以下方法进行了检查:

代码语言:javascript
复制
jclass clazz = env.getEnv()->FindClass("android/media/AudioSystem");
jmethodID mid = env.getEnv()->GetStaticMethodID(clazz, "getPrimaryOutputSamplingRate", "()I");
int nSampleRate = env.getEnv()->CallStaticIntMethod(clazz, mid);
LOGDEBUG << "Sample Rate: " << nSampleRate;

[ DBG:c894860f] 11:16:14.902: Sample Rate: 48000

有更好的方法来获取设备的采样率吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-05 20:44:58

问题在于回调函数中的互斥。

UPD:OpenSLES自述

已知问题 在48000 10,Galaxy和Nexus 10产生了浮躁的输出。在44100 up时,Galaxy在切换活动或启动大对话框时会出现故障。触摸的声音偶尔会导致OpenSL出现故障。在音频应用程序中禁用触摸声音可能是个好主意。这些问题并不是opensl_stream特有的,而是在其他环境中重复出现的。

票数 0
EN

Stack Overflow用户

发布于 2016-03-27 08:51:57

是的,有一种方法可以为设备找到首选的采样率,尽管它适用于API级别> 16. 你可以看看我的答案

还有关于你的SLDataFormat_PCM结构。你已经初始化了样本率48k*1k!如果要在48k中对PCM数据进行采样,请尝试使用下面的代码。

代码语言:javascript
复制
// configure audio source
SLDataFormat_PCM format_pcm = {
        SL_DATAFORMAT_PCM,
        aChannels,
        SL_SAMPLINGRATE_48,
        SL_PCMSAMPLEFORMAT_FIXED_16,
        SL_PCMSAMPLEFORMAT_FIXED_16,
        aChannels == 2 ? SL_SPEAKER_FRONT_LEFT | SL_SPEAKER_FRONT_RIGHT
                       : SL_SPEAKER_FRONT_CENTER,
        SL_BYTEORDER_LITTLEENDIAN
};

我以前没有和Nexus 9合作过,所以我不知道它是否支持48k采样率。但是无论如何,你可以检查它是否支持。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36172968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档