gpt4 book ai didi

Android AudioTrack 无法初始化

转载 作者:行者123 更新时间:2023-11-29 14:56:24 25 4
gpt4 key购买 nike

我在初始化 android AudioTrack 时遇到问题。我有带 android 2.3.3 的 Nexus One。

这是我的代码:

int _rate = AudioTrack.getNativeOutputSampleRate(AudioManager.STREAM_SYSTEM);

int buffersize = AudioRecord.getMinBufferSize(_rate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);

AudioTrack atrack = new AudioTrack(AudioManager.STREAM_VOICE_CALL, _速度, AudioFormat.CHANNEL_OUT_MONO, AudioFormat.ENCODING_PCM_16BIT, 缓冲区大小, AudioTrack.MODE_STREAM);

if (atrack.getState() == AudioTrack.STATE_UNINITIALIZED)...

所以 atrack 的状态总是 AudioTrack.STATE_UNINITIALIZED

应用 list 是

<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name="BigLeftEarActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

</application>

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"></uses-permission>
<uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>
<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>

<uses-sdk android:minSdkVersion="10" />

你能帮帮我吗?有什么问题吗?

谢谢!

最佳答案

我找到了一个解决方案:

行后

int buffersize = AudioRecord.getMinBufferSize(_rate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT);

我加了

缓冲区大小 *= 2;

并且音轨已初始化。

这不是一个完美的解决方案。也许只向缓冲区添加一个字节就足够了,但它确实有效。

“Feci quod potui, faciant meliora potuis Feci quod potui, faciant meliora potui.”

关于Android AudioTrack 无法初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5762022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com