1

winamp でボリュームを設定するための Python 関数があります。これは、ボリューム コントロールの引数として 1 バイトしか受け付けないように見えます。文字列型の数値を渡そうとすると、音量が非常に奇妙な値に設定されます。これは、バイトが渡されるのではなく、渡される整数の上位バイトを読み取っているためだと思います。

私の質問は、送信される前に、文字列型の数値が範囲 (0 ~ 255) の単一の符号なしバイトに変換されるようにするにはどうすればよいですか?

if "volume" in message.lower():
    if (len(wordList) > 4):
        xcomPrint("Usage : \\winamp volume (0 to 100)")
    elif (Arg1.isdigit()):
        winampInstance.setVolume(Arg1)
        xcomPrint("Volume set to " + str(Arg1))
    else:
        xcomPrint("Incorrect Arguments")
        xcomPrint("Usage : \\winamp volume (0 to 100)")

基本的に、Arg1 を 1 バイトにキャストする必要があります。(おもう)

4

2 に答える 2

0

どうでも、

実際に文字列から int にキャストするには、次を使用して動作します。

int(Arg1)

完全なコード:

if "volume" in message.lower():
    if (len(wordList) > 4):
        xcomPrint("Usage : \\winamp volume (0 to 100)")
    elif (Arg1.isdigit()):
        winampInstance.setVolume(int(Arg1))
        xcomPrint("Volume set to " + str(Arg1))
    else:
        xcomPrint("Incorrect Arguments")
        xcomPrint("Usage : \\winamp volume (0 to 100)")
于 2013-03-29T04:58:14.597 に答える
0

構造体を使用して試すことができます

import struct
Arg1 = struct.pack('B', 255)
于 2013-03-29T05:08:24.990 に答える