- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 3D 游戏中,我目前有通过工厂类“声音”工作的声音。我正在通过我的相机类初始化 OpenAL,加载时它将存储其位置、方向和速度的全局 float 缓冲区
private static FloatBuffer listenerPosition = BufferUtils.createFloatBuffer( 3 ).put( new float[] { X(), Y(), Z() } );
private static FloatBuffer listenerOrientation = BufferUtils.createFloatBuffer( 6 ).put (new float[] { 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f } );
private static FloatBuffer listenerVelocity = BufferUtils.createFloatBuffer( 3 ).put (new float[] { Velocity.x, Velocity.y, Velocity.z } );
listenerVelocity.put(0, Velocity.x);
listenerVelocity.put(1, Velocity.y);
listenerVelocity.put(2, Velocity.z);
alListener( AL_POSITION, listenerPosition );
alListener( AL_ORIENTATION, listenerOrientation );
alListener( AL_VELOCITY, listenerVelocity );
private int ID;
public Sound(String name) {
try {
ID = alGenBuffers();
WaveData data = WaveData.create(new BufferedInputStream(new FileInputStream("res/Sound/"+name+".wav")));
alBufferData(ID, data.format, data.data, data.samplerate);
data.dispose();
} catch (FileNotFoundException e) {
JOptionPane.showMessageDialog(null, "Could not find \"" + name + "\"", "IO Exception", JOptionPane.ERROR_MESSAGE);
Display.destroy();
System.exit(1);
}
}
public void play(float x, float y, float z) {
playSound(ID, new Vector3f(x,y,z));
}
private static void playSound(int buffer, Vector3f pos) {
while(alGetSourcei(Sources.get(currentsource), AL10.AL_SOURCE_STATE) == AL_PLAYING) {
currentsource++;
currentsource %= 10; //there are only 10 sources
}
alSourcei(Sources.get(currentsource), AL_BUFFER, buffer );
alSourcef(Sources.get(currentsource), AL_PITCH, 1.0f );
alSourcef(Sources.get(currentsource), AL_GAIN, 1.0f );
alSourcei(Sources.get(currentsource), AL_LOOPING, AL_FALSE);
alSourcef(Sources.get(currentsource), AL_REFERENCE_DISTANCE, 0);
alSourcef(Sources.get(currentsource), AL_MAX_DISTANCE, 100);
alSourcePlay(Sources.get(currentsource));
}
public static boolean hasLoaded(){return loaded;}
最佳答案
您应该查看音频文件 channel ,因为 openAL 仅对 应用衰减。单声道 .
关于audio - OpenAL 3D 音效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17328421/
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
我正在使用新的 iOS10 框架进行实时语音识别。我使用 AVCaptureSession 获取音频。 我有一个“正在收听”的哔哔声,通知用户他可以开始说话了。放置声音的最佳方式是在第一次调用 cap
在我的 3D 游戏中,我目前有通过工厂类“声音”工作的声音。我正在通过我的相机类初始化 OpenAL,加载时它将存储其位置、方向和速度的全局 float 缓冲区 private static Floa
我正在尝试为我的太空射击游戏实现 3d 声音系统。我已准备好一切(在每一侧播放不同音量的声音等)但我找不到正确的公式来计算每一侧的正确音量。 一般的想法是,每次玩家(飞船)杀死一个敌人(摄像机总是在飞
我正在编写一个简单的 Android 游戏。我在播放简单的“游戏完成”音效时遇到问题,一旦游戏结束(无论是赢还是输),然后才可以选择开始新游戏。 我的源代码是: soundPool.play(comp
这是我在这里逗留了一段时间后的第一个问题。所以请饶了我吧。 我需要通过 CLI 或 C++ 将 iZotope Vinyl VST 效果应用到某些音频文件(因此语言并不重要),它必须在 Mac 或基于
我正在开发一个 Android 应用程序,允许用户将手放在设备上,我想禁用物理按钮,这样用户就不会被不必要的点击所烦扰。 我已经禁用了后退、菜单和搜索按钮: @Overridepublic void
在一个简单的 HTML5/WebGL 应用中,我想偶尔播放一个音效。 目前我有一个构造函数: this.audio = new Audio('audio/zeep.mp3'); 然后,我想播放文件:
我是一名优秀的程序员,十分优秀!