首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在安卓系统中使用AudioTrack将采样率设置为100 set?

如何在安卓系统中使用AudioTrack将采样率设置为100 set?
EN

Stack Overflow用户
提问于 2011-12-01 04:53:13
回答 2查看 2.8K关注 0票数 1

我正在开发一个Android应用程序,可以播放特定的音频。这个音频是由代码生成的。我的问题是,我需要的采样率高达100 the,但我得到的错误信息如下。有谁知道如何用AudioTrack将采样率设定为100 how。谢谢。

PS:,据我所知,只有AudioTrack才能修改音频数据,这就是我使用AudioTrack的原因

代码语言:javascript
运行
复制
audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
                            100000,
                            AudioFormat.ENCODING_PCM_16BIT,
                            (int)minSize,
                            AudioTrack.MODE_STREAM);
代码语言:javascript
运行
复制
> D/AndroidRuntime( 7952): Shutting down VM E/AndroidRuntime( 7952):
> FATAL EXCEPTION: main E/AndroidRuntime( 7952):
> java.lang.RuntimeException: Unable to start activity
> ComponentInfo{com.examples.audiotracktest/com.examples.audiotracktest.AudioTrackTest}:
> java.lang.IllegalArgumentException: 100000Hz is not a supported sample
> rate. E/AndroidRuntime( 7952):    at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1830)
> E/AndroidRuntime( 7952):  at
> android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1851)
> E/AndroidRuntime( 7952):  at
> android.app.ActivityThread.access$1500(ActivityThread.java:132)
> E/AndroidRuntime( 7952):  at
> android.app.ActivityThread$H.handleMessage(ActivityThread.java:1038)
> E/AndroidRuntime( 7952):  at
> android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime(
> 7952):    at android.os.Looper.loop(Looper.java:150) E/AndroidRuntime(
> 7952):    at android.app.ActivityThread.main(ActivityThread.java:4293)
> E/AndroidRuntime( 7952):  at
> java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime(
> 7952):    at java.lang.reflect.Method.invoke(Method.java:507)
> E/AndroidRuntime( 7952):  at
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
> E/AndroidRuntime( 7952):  at
> com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
> E/AndroidRuntime( 7952):  at dalvik.system.NativeStart.main(Native
> Method) E/AndroidRuntime( 7952): Caused by:
> java.lang.IllegalArgumentException: 100000Hz is not a supported sample
> rate. E/AndroidRuntime( 7952):    at
> android.media.AudioTrack.audioParamCheck(AudioTrack.java:369)
> E/AndroidRuntime( 7952):  at
> android.media.AudioTrack.<init>(AudioTrack.java:312) E/AndroidRuntime(
> 7952):    at android.media.AudioTrack.<init>(AudioTrack.java:265)
> E/AndroidRuntime( 7952):  at
> com.examples.audiotracktest.AndroidAudioDevice.<init>(AndroidAudioDevice.java:21)
> E/AndroidRuntime( 7952):  at
> com.examples.audiotracktest.AudioThread.<init>(AudioThread.java:11)
> E/AndroidRuntime( 7952):  at
> com.examples.audiotracktest.AudioTrackTest.onCreate(AudioTrackTest.java:29)
> E/AndroidRuntime( 7952):  at
> android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072)
> E/AndroidRuntime( 7952):  at
> android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1794)
> E/AndroidRuntime( 7952):  ... 11 more
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-01 06:51:50

100 the是一种非标准采样率,大多数安卓平台只支持标准费率(参考维基百科:抽样率)。

最接近的标准速率是96 The (专业音频),但大多数手机不支持这一高速率。CD质量(44.1kHz)是广泛支持的,你可能是幸运的,得到48千赫(例如Nexus S)。

票数 3
EN

Stack Overflow用户

发布于 2016-09-22 09:38:01

请在Audiotrack,audiotrack.setPlaybackRate(int sampleRateInHertz)中检查此方法

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

https://stackoverflow.com/questions/8336701

复制
相关文章

相似问题

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