تقنية

wave في بايثون: هل setnframes تحدد الإطارات المكتوبة؟

العدد المعلن والفعلي
مثال توضيحي [1] [2]

نقارن العدد المعلن بالفعلي. [1] [2]

الخلاصة السريعة

لا؛ عندما يمكن تغيير الموضع يصحّح العدد الفعلي الترويسة. [1] [2]

  • في مخرج يسمح بتغيير الموضع، تُصحّح الترويسة للعدد الفعلي. [1] [2]
  • setnframes لا تحشو البيانات أو تقصها في مثالنا. [1] [2]
  • CPython 3.12.14: قناة واحدة، عرض 2 بايت، معدل 8000 هرتز، و4 بايتات تعطي إطارين. [1] [2]
  • BytesIO: نعلن 99، لكن الكاتب والقارئ يعيدان 2؛ البيانات محفوظة. [1] [2]
  • بدون تغيير الموضع، يجب أن يطابق العدد البيانات. [1] [2]

العدد والبيانات

في مخرج يسمح بتغيير الموضع، تُصحّح الترويسة للعدد الفعلي. [1] [2]

setnframes لا تحشو البيانات أو تقصها في مثالنا. [1] [2]

تجربة بإطارين

CPython 3.12.14: قناة واحدة، عرض 2 بايت، معدل 8000 هرتز، و4 بايتات تعطي إطارين. [1] [2]

import wave,io
b=io.BytesIO()
with wave.open(b,"wb") as f:
    f.setnchannels(1);f.setsampwidth(2);f.setframerate(8000)
    f.setnframes(99)
    f.writeframes(bytes.fromhex("00000100"))
    print(f.getnframes())
b.seek(0)
with wave.open(b,"rb") as f:
    print(f.getnframes())

[1] [2]

القيم والنطاق

BytesIO: نعلن 99، لكن الكاتب والقارئ يعيدان 2؛ البيانات محفوظة. [1] [2]

بدون تغيير الموضع، يجب أن يطابق العدد البيانات. [1] [2]

بايتات الإطارين
مقارنة توضيحية [1] [2]

المراجع

  1. Python 3.12: wave
  2. CPython 3.12.14: wave
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.