winsound --- رابط پخش صدا برای ویندوز


ماژول winsound دسترسی به سازوکار پایه‌ی پخش صدا ارائه‌شده توسط سکوهای ویندوزی را فراهم می‌کند. این ماژول شامل توابع و چند ثابت است.

winsound.Beep(frequency, duration)

بوق زدن بلندگوی رایانه. پارامتر frequency بسامد صدا را بر حسب هرتز مشخص می‌کند و باید در بازه‌ی ۳۷ تا ۳۲٬۷۶۷ باشد. پارامتر duration تعداد میلی‌ثانیه‌هایی را که صدا باید ادامه داشته باشد مشخص می‌کند. اگر سیستم قادر به بوق زدن بلندگو نباشد، RuntimeError پرتاب می‌شود.

winsound.PlaySound(sound, flags)

تابع زیربنایی PlaySound() از API پلتفرم را فراخوانی می‌کند. پارامتر sound می‌تواند یک نام پرونده، یک نام مستعار صدای سیستم، داده صوتی به‌عنوان یک bytes-like object، یا None باشد. تفسیر آن به مقدار flags بستگی دارد، که می‌تواند یک ترکیب OR بیت‌به‌بیت از ثابت‌های توصیف‌شده در زیر باشد. اگر پارامتر sound برابر None باشد، هر صدای موجی که هم‌اکنون در حال پخش است، متوقف می‌شود. اگر سیستم خطایی را گزارش کند، RuntimeError پرتاب می‌شود.

winsound.MessageBeep(type=MB_OK)

تابع زیربنایی MessageBeep() را از Platform API فراخوانی می‌کند. این کار صدایی را مطابق آنچه در رجیستری مشخص شده است پخش می‌کند. آرگومان type مشخص می‌کند کدام صدا پخش شود؛ مقادیر ممکن عبارت‌اند از -1، MB_ICONASTERISK، MB_ICONEXCLAMATION، MB_ICONHAND، MB_ICONQUESTION و MB_OK، که همگی در زیر توضیح داده شده‌اند. مقدار -1 یک «بوق ساده» تولید می‌کند؛ اگر صدا به روش دیگری قابل پخش نباشد، این آخرین جایگزین است. اگر سیستم خطایی را نشان دهد، RuntimeError پرتاب می‌شود.

winsound.SND_FILENAME

پارامتر sound نام یک پرونده WAV است. از آن همراه با SND_ALIAS استفاده نکنید.

winsound.SND_ALIAS

پارامتر sound نام یک ارتباط صدا از رجیستری است. اگر رجیستری چنین نامی نداشته باشد، صدای پیش‌فرض سیستم پخش می‌شود؛ مگر اینکه SND_NODEFAULT نیز مشخص شده باشد. اگر هیچ صدای پیش‌فرضی ثبت نشده باشد، RuntimeError ایجاد می‌شود. این گزینه را با SND_FILENAME استفاده نکنید.

تمام سیستم‌های Win32 حداقل از موارد زیر پشتیبانی می‌کنند؛ بیشتر سیستم‌ها از موارد بسیار بیشتری پشتیبانی می‌کنند:

PlaySound() name

نام صدای متناظر در Control Panel

'SystemAsterisk'

ستاره

'SystemExclamation'

علامت تعجب

'SystemExit'

خروج از ویندوز

'SystemHand'

توقف بحرانی

'SystemQuestion'

پرسش

برای مثال:

import winsound
# Play Windows exit sound.
winsound.PlaySound("SystemExit", winsound.SND_ALIAS)

# Probably play Windows default sound, if any is registered (because
# "*" probably isn't the registered name of any sound).
winsound.PlaySound("*", winsound.SND_ALIAS)
winsound.SND_LOOP

صدا را به‌طور مکرر پخش می‌کند. برای جلوگیری از مسدودسازی، باید از پرچم SND_ASYNC نیز استفاده شود. نمی‌تواند همراه با SND_MEMORY استفاده شود.

winsound.SND_MEMORY

پارامتر sound برای PlaySound() یک تصویر حافظه‌ای از یک پرونده WAV است، به‌صورت یک bytes-like object.

توجه

این ماژول از پخش از یک تصویر حافظه به‌صورت ناهمگام پشتیبانی نمی‌کند، بنابراین ترکیب این پرچم با SND_ASYNC استثنای RuntimeError را پرتاب می‌کند.

winsound.SND_PURGE

پخش تمام نمونه‌های صدای مشخص‌شده را متوقف می‌کند.

توجه

این پرچم در پلتفرم‌های مدرن ویندوز پشتیبانی نمی‌شود.

winsound.SND_ASYNC

فوراً بازمی‌گردد و اجازه می‌دهد صداها به‌صورت ناهمگام پخش شوند.

winsound.SND_NODEFAULT

اگر صدای مشخص‌شده یافت نشود، صدای پیش‌فرض سیستم را پخش نکنید.

winsound.SND_NOSTOP

صداهای در حال پخش را قطع نکنید.

winsound.SND_NOWAIT

اگر راه‌انداز صدا مشغول باشد، بلافاصله بازمی‌گردد.

توجه

این پرچم در پلتفرم‌های مدرن ویندوز پشتیبانی نمی‌شود.

winsound.SND_APPLICATION

پارامتر sound یک نام مستعار مختص برنامه در رجیستری است. می‌توان این پرچم را با پرچم SND_ALIAS ترکیب کرد تا یک نام مستعار صدای تعریف‌شده توسط برنامه مشخص شود.

winsound.SND_SENTRY

هنگام پخش صدا، یک رویداد SoundSentry راه‌اندازی می‌شود.

اضافه شده در نسخه‌ی 3.14.

winsound.SND_SYNC

صدا به‌صورت همگام پخش می‌شود. این رفتار پیش‌فرض است.

اضافه شده در نسخه‌ی 3.14.

winsound.SND_SYSTEM

صدا را به نشست صوتی برای صداهای اعلان سیستم اختصاص دهید.

اضافه شده در نسخه‌ی 3.14.

winsound.MB_ICONASTERISK

صدای SystemDefault را پخش کنید.

winsound.MB_ICONEXCLAMATION

صدای SystemExclamation را پخش می‌کند.

winsound.MB_ICONHAND

صدای SystemHand را پخش کنید.

winsound.MB_ICONQUESTION

صدای SystemQuestion را پخش کنید.

winsound.MB_OK

صدای SystemDefault را پخش کنید.

winsound.MB_ICONERROR

صدای SystemHand را پخش کنید.

اضافه شده در نسخه‌ی 3.14.

winsound.MB_ICONINFORMATION

صدای SystemDefault را پخش کنید.

اضافه شده در نسخه‌ی 3.14.

winsound.MB_ICONSTOP

صدای SystemHand را پخش کنید.

اضافه شده در نسخه‌ی 3.14.

winsound.MB_ICONWARNING

صدای SystemExclamation را پخش می‌کند.

اضافه شده در نسخه‌ی 3.14.