回答編集履歴
3
コードの修正
test
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
```waveOutOpen```関数でデバイスを開いた状態(time.sleep関数を使うなどで開いた状態を保持する)で、通知領域のスピーカーアイコンを右クリックし「音量ミキサーを開く(M)」を選択して表示される音量ミキサーで、Pythonの音量が0でないか確認すると良いと思います。
|
6
6
|
|
7
7
|
|
8
|
-
```
|
8
|
+
``` Python
|
9
9
|
import ctypes
|
10
10
|
from ctypes import wintypes
|
11
11
|
|
@@ -47,9 +47,18 @@
|
|
47
47
|
|
48
48
|
winmm.waveOutClose(device_handle)
|
49
49
|
|
50
|
-
print(f"\nresult{vol.value:08X}")
|
50
|
+
print(f"\nresult : {vol.value:08X}")
|
51
51
|
print(f"左チャネル : {vol.value&0xffff:04X}")
|
52
52
|
print(f"右チャネル : {vol.value>>16:04X}")
|
53
53
|
|
54
54
|
main()
|
55
55
|
```
|
56
|
+
|
57
|
+
実行結果
|
58
|
+
> waveOutOpen errorCode 0
|
59
|
+
> waveOutGetVolume errorCode 0
|
60
|
+
>
|
61
|
+
> result : 0000FFFF
|
62
|
+
> 左チャネル : FFFF
|
63
|
+
> 右チャネル : 0000
|
64
|
+
|
2
コードの修正
test
CHANGED
@@ -8,7 +8,6 @@
|
|
8
8
|
```
|
9
9
|
import ctypes
|
10
10
|
from ctypes import wintypes
|
11
|
-
|
12
11
|
|
13
12
|
CALLBACK_NULL = 0x0000_0000
|
14
13
|
|
@@ -21,8 +20,7 @@
|
|
21
20
|
("wBitsPerSample", wintypes.WORD),
|
22
21
|
("cbSize", wintypes.WORD)]
|
23
22
|
|
24
|
-
|
25
|
-
def main()
|
23
|
+
def main():
|
26
24
|
wave_format = WAVEFORMATEX()
|
27
25
|
wave_format.wFormatTag = 1 # WAVE_FORMAT_PCM
|
28
26
|
wave_format.nChannels = 2
|
@@ -38,20 +36,20 @@
|
|
38
36
|
device_handle = wintypes.HANDLE()
|
39
37
|
open_result = waveOutOpen(ctypes.byref(device_handle), wintypes.UINT(-1), ctypes.byref(wave_format), 0, 0, CALLBACK_NULL)
|
40
38
|
print("waveOutOpen errorCode", open_result)
|
39
|
+
|
40
|
+
|
41
41
|
# import time
|
42
|
-
# time.sleep(
|
42
|
+
# time.sleep(30)
|
43
|
+
|
43
|
-
vol = wintypes.DWORD()
|
44
|
+
vol = wintypes.DWORD()
|
44
45
|
get_vol = winmm.waveOutGetVolume(device_handle, ctypes.byref(vol))
|
45
46
|
print("waveOutGetVolume errorCode", get_vol)
|
46
47
|
|
47
|
-
|
48
|
-
|
49
48
|
winmm.waveOutClose(device_handle)
|
50
49
|
|
51
|
-
print("\nresult
|
50
|
+
print(f"\nresult{vol.value:08X}")
|
52
|
-
print("左チャネル :
|
51
|
+
print(f"左チャネル : {vol.value&0xffff:04X}")
|
53
|
-
print("右チャネル :
|
52
|
+
print(f"右チャネル : {vol.value>>16:04X}")
|
54
53
|
|
55
54
|
main()
|
56
|
-
|
57
55
|
```
|
1
文章の修正
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
```waveOutOpen```関数の3つ目の引数が、WAVEFORMATEX型のポインターになっていなかったり、```vol```の型が```ctypes.c_ulong()```または```wintypes.DWORD()```になっていなかったりしていますが、私の環境では取得できました。
|
3
3
|
|
4
4
|
結果が0であるということは、音量が0である可能性があります。
|
5
|
-
```waveOutOpen```関数で
|
5
|
+
```waveOutOpen```関数でデバイスを開いた状態(time.sleep関数を使うなどで開いた状態を保持する)で、通知領域のスピーカーアイコンを右クリックし「音量ミキサーを開く(M)」を選択して表示される音量ミキサーで、Pythonの音量が0でないか確認すると良いと思います。
|
6
6
|
|
7
7
|
|
8
8
|
```
|