2016-09-21 5 views
0

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のとき、それはグリッチを行います。私は他の値を試していないが、私は彼らが同じことをすることを断言するだろう。

答えて

0

LibGDXのオーディオ実装はAndroidに完全に依存します。 Sound.setPitch実際にはSoundPool.setRateAndroid documentation of setRate

サウンドをOGG形式に変換しようとすると、SoundPoolで一部のデバイスでMP3ファイルを再生する際に問題が発生することがわかっています。

+0

残念ながら、oggファイルに変換しても問題は解決されませんでした:¥ – XPatStudios

+0

ピッチが> = 2のときに表示されます。むしろ奇妙なのですか? – XPatStudios

+0

ああ、それは奇妙ではない、私が送ったAndroidの医者を見てください。 'float:再生レート(1.0 =通常再生、範囲0.5〜2.0)'これが理由だと思います。 – pr0gramist

関連する問題