سؤال

ولدي 3.5 تطبيق الاتفاق الإطاري الذي هو المسؤول لمسح الباركود. هناك 3 مختلف الأصوات يجب ان تلعب تبعا للحالة، لذلك أنا خلقت فئة مجمع حول الكائن SoundPlayer واستدعاء الأسلوب اللعب على ذلك.

public static class SoundEffectsPlayer
{
    private static readonly SoundEffect _alert;

    static SoundEffectsPlayer()
    {
        // This will cause the SoundEffect class to throw an error that the Uri 
        // Format is not supported, when new SoundPlayer(location) is called.
        _alert = new SoundEffect("SoundEffects/alert.wav");
    }

    public static SoundEffect Alert
    {
        get { return _alert; }
    }
}

public class SoundEffect
{
    private readonly SoundPlayer _sound;

    public SoundEffect(string location)
    {
        _sound = new SoundPlayer(location);
        _sound.Load();
    }

    public bool IsLoaded
    {
        get { return _sound.IsLoadCompleted; }
    }

    public void Play()
    {
        _sound.Play();
    }
}

وكانت الفكرة لعدم إنشاء SoundPlayer في كل مرة الباركود اللازمة لإجراء المسح الضوئي (التي ستكون بضع مئات من مرة في الساعة). لذلك يمكن أن أدعو فقط لعب على الملف تحميلها بالفعل.

وملف alert.wav في مجلد SoundEffects موجود على جذر مشروع مكتبة المراجع التطبيق، ويتم تعيين لتكون جزءا لا يتجزأ من الموارد. ما الذي أحتاج لتمرير في للصف SoundEffects لتحميل ملف wav؟ يجب أن ملف wav حتى تكون جزءا لا يتجزأ في مشروع المكتبة؟

وأيضا لا أحد يلاحظ أي شيء خاطئ مع الطريق أنا التعامل مع عزف ملفات الرعايا؟ وهذا هو أول محاولة لي في شيء من هذا القبيل، لذلك أنا مستعد لسماع الاقتراحات للتحسين.

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

المحلول

وهممم. أنا لم تستخدم SoundPlayer من قبل، أنا التخمين انها مجرد التفاف حول وظيفة PlaySound coredll. ولكن على أية حال، وأتوقع أنه يطالب مسار ملف كوسيطة.

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

وتذكر أن في ويندوز سي إي أنت دائما بحاجة مسارات الكاملة أيضا. مسار نسبي من قيد التشغيل حاليا متعود العمل .exe في CE.

إذا كنت بحاجة إلى معرفة "أين أنت" لإنشاء مسار إلى المورد، وانظر جواب <لأ href = "https://stackoverflow.com/questions/284049/how-do-you-get -The-التيار-دليل-في-الاتفاق الإطار "> هذا السؤال .

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