- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
找不到如何提出关于 Steve Pomeroy 发布的“使用 Android 播放任意音调”的问题,所以开始了一篇 here .
是否有任何代码需要添加到 xml 文件中?
无法让 sim 发出声音。
public class PlaySound extends Activity {
// originally from http://marblemice.blogspot.com/2010/04/generate-and-play-tone-in-android.html
// and modified by Steve Pomeroy <steve@staticfree.info>
private final int duration = 3; // seconds
private final int sampleRate = 8000;
private final int numSamples = duration * sampleRate;
private final double sample[] = new double[numSamples];
private final double freqOfTone = 440; // hz
private final byte generatedSnd[] = new byte[2 * numSamples];
Handler handler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
protected void onResume() {
super.onResume();
// Use a new tread as this can take a while
final Thread thread = new Thread(new Runnable() {
public void run() {
genTone();
handler.post(new Runnable() {
public void run() {
playSound();
}
});
}
});
thread.start();
}
void genTone(){
// fill out the array
for (int i = 0; i < numSamples; ++i) {
sample[i] = Math.sin(2 * Math.PI * i / (sampleRate/freqOfTone));
}
// convert to 16 bit pcm sound array
// assumes the sample buffer is normalised.
int idx = 0;
for (final double dVal : sample) {
// scale to maximum amplitude
final short val = (short) ((dVal * 32767));
// in 16 bit wav PCM, first byte is the low order byte
generatedSnd[idx++] = (byte) (val & 0x00ff);
generatedSnd[idx++] = (byte) ((val & 0xff00) >>> 8);
}
}
void playSound(){
final AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
sampleRate, AudioFormat.CHANNEL_CONFIGURATION_MONO,
AudioFormat.ENCODING_PCM_16BIT, generatedSnd.length,
AudioTrack.MODE_STATIC);
audioTrack.write(generatedSnd, 0, generatedSnd.length);
audioTrack.play();
}
}
activity android:soundEffectsEnabled="true"
uses-permission android:name="android.permission.WRITE_SETTINGS"
最佳答案
添加
int x = 0;
// Montior playback to find when done
do
{
if (audioTrack != null)
x = audioTrack.getPlaybackHeadPosition();
else
x = numSamples;
}
while (x<numSamples);
// Track play done. Release track.
if (audioTrack != null) audioTrack.release();
关于android - 关于 "Playing an arbitrary tone with Android",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17439730/
我正在尝试使用tone.js在Angular 9中实现一个简单的节拍器,但是在执行过程中似乎正在发生某种类型的心律失常... 我不知道我是否在实现中遗漏了一些东西。 这是我的代码: playM
简而言之,按下按钮我想使用 PolySynth 弹几个音符和 Sequence .如果用户反复按下按钮,我希望播放的内容停止,然后重新开始。这很可能是因为信封的衰减/维持。 问题:无论我尝试什么,我都
我有一个使用 Tone.js 在循环上运行的简短、交叉渐变的环境声音剪辑。麻烦的是,在一个播放的结束和下一个播放的开始之间有一个听得见的间隙。 我知道可以使用音频 Sprite 在 Howler.js
我正在与 CJKLIB 合作,使用 getReadingForCharacter 将中文字符转换为拼音。但是,有什么办法吗 readings = cjk.getReadingForCharacter(
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 2年前关闭。 Improve thi
你能帮我看看如何使用 SVG 在下面的链接上实现棕褐色调吗? My Sepia Tone made with Photoshop's Color Balance 我试过下面的代码:
我是 Tone.js 的新手,并且对 Gain 对象有疑问。我在 html 中设置了一个音量 slider ,如下所示: Play Stop Vol: 4 单击“播
In this ramping example在 Tone.js 中,斜坡的作用不是“平滑”,而是几乎像延迟一样。似乎当它收到一个值时,它不会开始向那个值倾斜,而是会在当前值之后安排另一个斜坡。 当您
我正在尝试创建一个复选框 ($('#button')),其操作会根据 播放器 的状态(音频是否为播放或不播放)使用 Tone.js 和 jQuery。 因此,逻辑是,如果音频已经启动,则复选框的操作只
我一直在研究人们的 Java 合成器,但不知道如何生成他们程序的简单版本。我的目标是用 java 创建一个简单的测试音,用户可以通过按某些键来更改它。例如,按“r”将提高幅度,或“f”将增加频率。我只
我正在构建一个由 Tone.js 提供支持的小型网络应用程序,用于训练自己弹奏钢琴的关键(可能还有其他一些练习)。到目前为止,您可以选择根音符和音阶类型并单击播放,它将循环播放该音阶。还有一个键盘/合
我正在开发一个网络游戏,点击一个按钮应该连续播放两个音符。我可以使用上传的音频文件和 audio.onended 回调来完成。 function playMusic(){ audio.src
我使用 Codepen 编写了一个简单的合成器。它实际上可以工作并且做了我期望它做的事情(在 Codepen 上和网站上的 Debug模式下)。不幸的是,它在我的本地计算机上不起作用:如果我下载代码并
我想用代码控制 iPad 屏幕的亮度和颜色。我可以使用以下方式管理亮度: UIScreen.main.brightness 但是否可以通过编程方式访问和禁用“True Tone”和“Night Shi
我想在音符播放完毕后使用 tone.js 更新我的 UI const now = Tone.now() synth.triggerAttack("G3", now); synth.triggerRel
我正在尝试在 ESM 模块上使用 tone.js。 (我可以在带有 bundler 的“commonjs”中毫无问题地使用它) 在我的html中 和 tests.js: import * as To
找不到如何提出关于 Steve Pomeroy 发布的“使用 Android 播放任意音调”的问题,所以开始了一篇 here . 是否有任何代码需要添加到 xml 文件中? 无法让 sim 发出声音。
我想同时完成两件事: 1) 更改播放速率声音文件到 1/2 速度 2) 降低间距 由五分之一 最后,我不想使用单独的按钮来播放结果 将其连接到音频标签 并使用那里的播放按钮。 下面是迄今为止我使用 T
我正在尝试在 Laravel 应用程序中使用 Tone Analyzer API。无论我尝试什么,我总是得到相同的响应 {"code":401, "error": "Unauthorized"}。我怀
我想实现一个基本的音调播放器来从文件夹加载文件并通过按 ReactJS 中的按钮来播放它。 import React, { Component, PropTypes } from 'react'; i
我是一名优秀的程序员,十分优秀!