سؤال

ولدي ملف موجة تأثير الصوت 10 ثانية. ما أود فعله هو أن تأخذ هذا الملف وتكراره ن عدد مرات ثم قم بحفظ ملف WAV أطول إلى القرص. بهذه الطريقة أستطيع أن خلق تأثير الخلفية أطول من ذلك بكثير وليس لصناعة السيارات في تكرار على لاعب وسائل الاعلام وهو تمتمت قليلا بين يكرر. أحاول القيام بذلك في C #.

هل كانت مفيدة؟

المحلول

إذا كنت تحتاج فقط إلى القيام بذلك مع عدد قليل من الملفات، قد تفعل كذلك باليد مع جرأة .

نصائح أخرى

وهذا هو معقول من السهل القيام به، نظرا ل تنسيق ملف - على افتراض انها المضغوطة السمعية (معظم ملفات WAV هي - أو على الأقل، كانت آخر مرة كان لي أي علاقة معهم)

.

وربما تكون هناك أيضا واجهات برمجة التطبيقات الصوتية التي يمكن استخدامها للقيام بذلك دون أن يعلقوا في شكل ثنائي، ولكن أظن انها تريد ان تستغرق وقتا طويلا لمعرفة على أنها مجرد فعل ذلك بنفسك كما أنت لا تفعل أي شيء معقد للغاية.

إذا كنت تستخدم صافي 2.0 أو أعلى ثم يمكنك استخدام في System.Media.SoundPlayer الصف وتحديدا في <لأ href =" http://msdn.microsoft.com/en-us/library/system.media.soundplayer.playlooping.aspx "يختلط = "نوفولو noreferrer"> PlayLooping طريقة لتحقيق ما تريد من دون التأتأة. وهذا أفضل من إنشاء ملف الرعايا الجديد - وهو ما يعني أقل مساحة القرص للملف وأقل الذاكرة المطلوبة لجعل الصوت. بشكل عام يجب عليك دائما استخدام تقنيات مثل هذا لتشغيل الصوت مخزنة اذا كان الصوت سوف يحلق أو أطول من بضع ثوان.

ويمكنك القيام بذلك بسهولة في C # باستخدام NAudio NET مكتبة الصوت. سوف تحتاج إلى استخدام WaveFileReader وWaveFileWriter الطبقات. يمكنك أيضا استخدامه لإنشاء WaveStream المخصصة التي سوف حلقة الصوت عدة مرات كما تريد دون الحاجة لإنشاء ملف WAV طويلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top