首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在android中播放旋律?

如何在android中播放旋律?
EN

Stack Overflow用户
提问于 2017-02-11 18:53:33
回答 1查看 90关注 0票数 2

我如何在android 5中播放旋律,比如440‘s,480’s,500‘s,440’s?其他系统也有一些东西。比如"sound(440)“。或者我必须用AudioTrack合成它?

EN

回答 1

Stack Overflow用户

发布于 2017-02-27 13:37:41

是的,正如@zed指出的那样,你必须使用AudioTrack来合成它。

这里有一些代码可以帮助你

代码语言:javascript
复制
 final static double scale = 1;
 final static int duration = 50; // Seconds
 final static int sampleRate = 22050; // Hz (maximum frequency is 7902.13Hz (B8))
 final static int numSamples = duration * sampleRate;
 final static double samples[] = new double[numSamples];
 final static short buffer[] = new short[numSamples];


double note = scale * frequency;
for (int i = 0; i < numSamples; ++i)
 {
      samples[i] = Math.sin(2 * Math.PI * i / (sampleRate / note)); // Sine wave
      buffer[i] = (short) (samples[i] * Short.MAX_VALUE);  // Higher amplitude increases volume
 }

audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,sampleRate,AudioFormat.CHANNEL_OUT_MONO,
                AudioFormat.ENCODING_PCM_16BIT, buffer.length,AudioTrack.MODE_STATIC);
audioTrack.write(buffer, 0, buffer.length);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42175002

复制
相关文章

相似问题

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