注意:我不想“读取音频文件foo.bar并播放它”。
我想以编程方式即时生成音频文件并进行播放。
Java是否为此内置了库,还是属于依赖系统的库?
谢谢!
使用(Andrew)的方法,下面是一个示例,该示例具有相同的调节范围。
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
public class Tone {
public static void main(String[] args) throws LineUnavailableException {
final AudioFormat af =
new AudioFormat(Note.SAMPLE_RATE, 8, 1, true, true);
SourceDataLine line = AudioSystem.getSourceDataLine(af);
line.open(af, Note.SAMPLE_RATE);
line.start();
for (Note n : Note.values()) {
play(line, n, 500);
play(line, Note.REST, 10);
}
line.drain();
line.close();
}
private static void play(SourceDataLine line, Note note, int ms) {
ms = Math.min(ms, Note.SECONDS * 1000);
int length = Note.SAMPLE_RATE * ms / 1000;
int count = line.write(note.data(), 0, length);
}
}
enum Note {
REST, A4, A4$, B4, C4, C4$, D4, D4$, E4, F4, F4$, G4, G4$, A5;
public static final int SAMPLE_RATE = 16 * 1024; // ~16KHz
public static final int SECONDS = 2;
private byte[] sin = new byte[SECONDS * SAMPLE_RATE];
Note() {
int n = this.ordinal();
if (n > 0) {
double exp = ((double) n - 1) / 12d;
double f = 440d * Math.pow(2d, exp);
for (int i = 0; i < sin.length; i++) {
double period = (double)SAMPLE_RATE / f;
double angle = 2.0 * Math.PI * i / period;
sin[i] = (byte)(Math.sin(angle) * 127f);
}
}
}
public byte[] data() {
return sin;
}
}
这种低级方法可能适用于能力较弱的旧平台。还考虑javax.sound.midi
; 一个完整的例子显示在这里和声音合成教程引用在这里。
问题内容: 我没有找到有关如何执行此操作的任何资源。只需更改播放器的颜色即可,:) 问题答案: 是! 具有“ controls”属性的HTML5音频标签使用浏览器的默认播放器。您可以根据自己的喜好自定义它,方法是不使用浏览器控件,而是滚动自己的控件并通过javascript与音频API对话。 幸运的是,其他人已经做到了。我现在最喜欢的播放器是jPlayer,它的风格非常好,效果很好。一探究竟。
6. 音视频设置 摄像头 摄像头是输入设备。点击教室右下角的小齿轮图标进入设置界面,找到摄像头后面的下拉箭头,可选择摄像设备。 麦克风 麦克风是输入设备,即说话的话筒设备。点击教室右下角的小齿轮图标进入设置界面,找到麦克风后面的下拉箭头,选择麦克风设备。 扬声器 扬声器是输出设备,即听别人说话的听筒设备。点击教室右下角的小齿轮图标进入设置界面,找到扬声器后面的下拉箭头,选择扬声器设备。可以手动调节
问题内容: 检查html5音频元素当前是否正在播放的JavaScript API是什么? 问题答案: 音频标签具有一个属性。如果未暂停,则正在播放。
问题内容: 如何跳到 HTML5音频 元素中的特定时间偏移? 他们说您可以简单地设置其属性(重点是我的): 该属性在获取时必须返回以秒为单位的当前播放位置。 设置时 ,如果媒体元素具有当前媒体控制器,则它必须引发INVALID_STATE_ERR异常;否则,它将抛出INVALID_STATE_ERR异常。否则,用户代理必须寻求新值(这可能会引发异常)。 las,它似乎不起作用(我需要在Chrome
函数名称:获取音频播放状态 函数功能: 获取音频是否在播放 函数方法 flag = media.isPlaying() 返回值 类型 说明 flag boolean true - 正在播放音频,false - 未播放 函数用例 media.playAudio("/mnt/sdcard/LuaBox/Projects/1/1.mp3",5,true) flag = media.isPlaying()
音频概述 没有音频的游戏是不完整的,例如背景音乐或音响效果。Unity 的音频系统灵活而强大。它可以导入大多数标准音频文件格式,并且为播放 3D 空间中的声音提供了复杂的功能,以及可选的音响效果,例如回音和过滤。Unity 还可以记录来自用户机器上任意可用麦克风的音频,以便在游戏过程中使用,或者用于存储和传输。 基础理论 在现实生活中,声音由对象发出,并被听众听到。声音被感知的方式取决于许多因素。