サウンドを割り当てて後で再生できるボタンがいくつかあるtkinterでアプリケーションを作成しようとしています。ボタン自体のクリックはplay()メソッドのみを呼び出すので、サウンドのロードは事前に行われます。pygame.mixerでボリュームを変更する(ほとんど)効果がありません
私はスライダ(tk.Scale)で何らかのボリュームコントロールを作ってみましたが、私はゼロに非常に近づくまでほとんどのボリューム値に顕著な違いがないことに気付きました(スライダの解像度は0.0から0.0 0.1)。 約0.02私は音量が大幅に低いことに気付くと思うし、私がゼロになると、音はミュートされます。再生中の音がないときにスライダを動かすと、これが発生します。
興味深いのは、再生中にスライダーを動かすのに十分な長さのサウンドを再生しようとすると、すぐに違いがわかるはずですが、サウンドが再生を停止してもう一度再生しようとすると、再度「デフォルト」ボリュームに移動します。
私はアプリケーションを複数のスクリプトに分けたので(サウンド、サウンド、GUIの録音)、私はPygameミキサーを直接初期化していないのではなく、 (私は適切に願っています)ボリュームが実際に設定されていることを確認1.0,0.5,0.078125(他の下記1):私は新しいPythonスクリプトを作り、中にこのコードを入力:出力は以下の通りです
import pygame
import time
pygame.mixer.pre_init(frequency=44100, size=-16, channels=1, buffer=512)
pygame.mixer.init()
sound1=pygame.mixer.Sound("sound.wav")
sound1.set_volume(1.0)
print sound1.get_volume()
sound1.play()
time.sleep(sound1.get_length())
sound1.set_volume(0.5)
print sound1.get_volume()
sound1.play()
time.sleep(sound1.get_length())
sound1.set_volume(0.08)
print sound1.get_volume()
sound1.play()
time.sleep(sound1.get_length())
。
私が気付くことができる唯一の時間は、本当に目立ったものではない3番目のケースです。私はボリュームの増加を線形にしたい、これはこれから遠いです。
sound1=pygame.mixer.Sound("sound.wav")
channel=pygame.mixer.find_channel(True)
channel.set_volume(1.0)
channel.play(sound1)
time.sleep(sound1.get_length()/2)
channel.set_volume(0.5)
print "Volume set"
time.sleep(sound1.get_length()/2)
ありません運が、同じことがあまりにもここに起こる:
私は、チャネルと同じことを試してみました。私はいつもグーグル "パイゲミキサーボリューム問題" "パイゲームミキサーボリュームセット問題"と同様のフレーズを過ごしましたが、運はありませんでした。うまくいけば、私の卒業証書がPythonメソッドに依存していることを考えれば、誰かが助けになることができます。 :)
ありがとうございます。