setPitch(id、1.0f)を呼び出すSoundオブジェクトがあります。何らかの理由で、ほとんどのデバイスでこれはうまくいくと思われます(1.0fは正常です)。しかし、銀河ノート3では、醜いディープなサウンドになり、サウンドオブジェクトは、もう一度playメソッドを呼び出した後でサウンドを生成しなくなりました(プレーヤーがポイントを得るたびにSoundオブジェクトを再生します)。私がゲームの他の部分に同じSoundオブジェクトを使用するので、ピッチを設定する必要があります。私は以下のコードをリンクしますが、libgdxグリッチ/ハードウェアの問題であるかのように感じます。ありがとう!Libgdx Sound | setPitchは、Soundオブジェクトの再生/ノイズの発生を停止させます。
if (contact.getFixtureA().getFilterData().categoryBits == Config.CATEGORYBIT_BONUS) {
final BonusFixtureUserData userData = (BonusFixtureUserData) contact.getFixtureA().getUserData();
if (userData.bonus.scorable) {
long id = AudioManager.getAudioManager().playSound(AudioManager.getAudioManager().bonusSound);
AudioManager.getAudioManager().bonusSound.setPitch(id, Config.pointSoundPitch * 2);
}
}
AudioManagerクラス(下)
public class AudioManager {
private static AudioManager audioManager;
public Sound jumpSound, deathSound, pointSound, bonusSound;
public static AudioManager getAudioManager() {
if (audioManager == null) {
audioManager = new AudioManager();
}
return audioManager;
}
private float sound_volume, music_volume;
private AudioManager() {
sound_volume = 1f;
}
public void setAudio() {
deathSound = (Sound) Game.assetManager.get("sound/death.mp3");
jumpSound = (Sound) Game.assetManager.get("sound/tap.mp3");
pointSound = (Sound) Game.assetManager.get("sound/point.mp3");
bonusSound = (Sound) Game.assetManager.get("sound/point.mp3");
}
public long playSound(Sound sound) { //Returns soundID (Sound can play multiple times, soundID refers to which instance is playing)
long id = sound.play();
sound.setLooping(id, false);
sound.setVolume(id, sound_volume);
return id;
}
public static void dispose() {
audioManager = null;
}
}
Config.pointPitchSoundは、ゲーム全体1.0Fと1.07fの間に実際に同じです。それが1.0fのとき、それはグリッチを行います。私は他の値を試していないが、私は彼らが同じことをすることを断言するだろう。
残念ながら、oggファイルに変換しても問題は解決されませんでした:¥ – XPatStudios
ピッチが> = 2のときに表示されます。むしろ奇妙なのですか? – XPatStudios
ああ、それは奇妙ではない、私が送ったAndroidの医者を見てください。 'float:再生レート(1.0 =通常再生、範囲0.5〜2.0)'これが理由だと思います。 – pr0gramist