Winmm.dll не возвращает длину файлаPython

Программы на Python
Ответить
Anonymous
 Winmm.dll не возвращает длину файла

Сообщение Anonymous »

Я пытаюсь воспроизвести файл .mp3 в Python, используя winmm.dll (ctypes.windll.winmm). Но когда я пытаюсь получить длину некоторого файла в миллисекундах, вместо фактической длины (05:23 = около 323000 мс) я получаю всего 3. Формат времени, полученный командой статуса, — «m», и после этого он не меняется. установить команду. Вот код, иллюстрирующий проблему:

Код: Выделить всё

from ctypes import windll, c_buffer

fp = 'song.mp3'
alias = 'test'

buf = c_buffer(255)
r = windll.winmm.mciSendStringW(f'open "{fp}" alias {alias}', buf, 254, 0)
print(r)

buf = c_buffer(255)
r = windll.winmm.mciSendStringW(f'status {alias} time format', buf, 254, 0)
print(r, buf.value)

buf = c_buffer(255)
r = windll.winmm.mciSendStringW(f'set {alias} time format milliseconds', buf, 254, 0)
print(r)

buf = c_buffer(255)
r = windll.winmm.mciSendStringW(f'status {alias} time format', buf, 254, 0)
print(r, buf.value)

buf = c_buffer(255)
r = windll.winmm.mciSendStringW(f'status {alias} length', buf, 254, 0)
print(r, buf.value)
И его вывод:

Код: Выделить всё

0
0 b'm'
0
0 b'm'
0 b'3'
Заранее спасибо за помощь!

Подробнее здесь: https://stackoverflow.com/questions/593 ... th-of-file
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»