الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

أقوم بعمل برنامج يحتوي على المئات والآلاف من الصور والصوت.. فما الحل؟!

بدأه اأإبراهيم في 24 يونيو 2011 · 29 رد · 1,445 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

أقوم بعمل برنامج يحتوي على المئات والآلاف من الصور والصوت (حيث أن ملفات الصوت والصور موجودة في مجلد بجانب البرنامج)

مما يترتب على ذلك صعوبة في نسخ البرنامج من جهاز كمبيوتر لآخر

فما الحل؟!!

ألا يمكن من عمل شىء تخزن فيه هذه الملفات (كقاعدة البيانات مثلاً) واستخدامها من داخل البرنامج

حيث ستعرض الصور في أداة PictureBox1 وتعمل ملفات الصوت باستخدام أداة الويندوز AxWindowsMediaPlayer1

علماً بأن: الصور بصيغة png والصوت بصيغة mp3

أرجو حل سريع لهذه المشكلة

وجزاكم الله خيراً

#2

السلام عليكم ورحمه الله وبركاته

اخي لقد تطرقت لموضوع خزن الوسائط المتعددة في قاعدة البيانات وايش سلبياتها وايجابياتها في الرابط التالي /index.php?showtopic=243472

.:: Wish to become better and better ::.

#3

وجدت طريقة أفضل وأسهل من قاعدة البيانات

الرابط:

http://www.vb4arab.com/vb/showthread.php?t=20872

ولكن في هذا الرابط أضاف صورة

فكيف أضيف ملف صوت واستدعيه ؟!

#4

السلام عليكم ورحمه الله وبركاته

اخي الرابط السابق يوضح عملية الخزن في ملف المصادر تبع المشروع, يمكنك بنفس الصور حفظ ملف الصوت, شوف الرابط ده للفائده http://www.codeproject.com/KB/miscctrl/accessingsoundfile.aspx

.:: Wish to become better and better ::.

#5
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي الرابط السابق يوضح عملية الخزن في ملف المصادر تبع المشروع, يمكنك بنفس الصور حفظ ملف الصوت

نعم يخزنه في ملف dll بجانب البرنامج

ويوجد في الرابط الذي أخبرتك به كود لحفظ الصورة في ملف dll وطريقة عرضها في أداة الصورة

أريد كود يقوم بحفظ ملف الصوت في ملف dll (كالكود الموجود للصورة) وطريقة تشغيلها بأداة الويندوز

VB Helper كتب:

أظن أنه يشرح طريقة لتخزين ملف الصوت في البرنامج نفسه

وأنا لا أريد ذلك

حيث أن ملفات الصوت والصور كثيرة جداً, وحجمها قرابة 4 جيجاً (مع ملاحظة أن ملف الصوت أو الصورة الواحدة حجمها لا يتخطى 120 KB)

#6

السلام عليكم ورحمه الله وبركاته

طيب اخي ليش ما تخزنها في قاعدة بيانات؟!!

.:: Wish to become better and better ::.

#7
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

طيب اخي ليش ما تخزنها في قاعدة بيانات؟!!

لا أعرف كيف أخزنها في قاعدة بيانات (مع العلم أنا لم أتعامل مع قواعد البيانات, ولكن لدى معلومات عنها وأعرفها)

ألم تجد حلاً للمشكلة التي أخبرتك بها في المشاركة السابقة؟!!

إني أرها أفضل بل وأسهل من تخزينها في قاعدة بيانات

ملاحظة: إني سأقسم المشروع إلى 40 جزءً لوضع كل جزء في ملفات dll , ولكن كيف أضع ملفات الصوت في ملفات dll وتشغيلها بـ Windows Media Player ؟؟!!!!!

تم تعديل هذه المشاركة بواسطة اأإبراهيم في 24 يونيو 2011 في 23:05

#8

لو توجد طريقة سهلة لتخزين الصور وملفات الصوت في قاعدة بيانات الرجاء إخباري بها

#10
اأإبراهيم كتب:

ويوجد في الرابط الذي أخبرتك به كود لحفظ الصورة في ملف dll وطريقة عرضها في أداة الصورة

أريد كود يقوم بحفظ ملف الصوت في ملف dll (كالكود الموجود للصورة) وطريقة تشغيلها بأداة الويندوز

عرفت كود تخزين ملف صوت في ريسورس خارجي

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim rw As New Resources.ResourceWriter("res.dll")
        rw.AddResource("100", IO.File.ReadAllBytes("C:\0.wav"))
        rw.Generate()
        rw.Close()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Try
            Dim bb() As Byte
            Dim reader As New Resources.ResourceReader("res.dll")
            Dim en As IDictionaryEnumerator = reader.GetEnumerator()
            While en.MoveNext
                If en.Key = "100" Then
                    bb = en.Value
                    Exit While
                End If
            End While
            reader.Close()
            My.Computer.Audio.Play(bb, AudioPlayMode.Background)
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub

ولكن الكود السابق يشغل ملفات بصيغة wav فقط لانه يستخدم My.Computer.Audio

هل يمكن جعله يشغل الملف الصوتي باستخدام Windows Media Player ؟

تم تعديل هذه المشاركة بواسطة اأإبراهيم في 25 يونيو 2011 في 19:37

#11

السلام عليكم ورحمه الله وبركاته

اخي جرب الكود التالي للتشغيل


AxWindowsMediaPlayer1.Url=bb;

.:: Wish to become better and better ::.

#12
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي جرب الكود التالي للتشغيل


AxWindowsMediaPlayer1.Url=bb;

لم ينجح الكود

لقد أرفقت لك المشروع

WV.rar

#13

السلام عليكم ورحمه الله وبركاته

اخي لقد تم التعديل على المرفق ..

WV.zip

1

.:: Wish to become better and better ::.

#14
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي لقد تم التعديل على المرفق ..

جزاك الله خيراً

يمكنني أن استفيد به

ولكن هذا الكود يستخرج الملف ثم يشغله

وأنا أريد تشغيل الملف مباشرة , وكأني استخدم My.Computer.Audio

إن الذي يجعلني لا استخدم My.Computer.Audio ليس لأن الملف mp3 (يمكنني أن أحوله wav بسهولة) بل لأني أريد أن اشغل ملف صوتي وبعد أن ينتهي مباشرةً اشغل ملف صوتي آخر باستخدام طريقة غير WaitToComplete , لأنها تجعل البرنامج بأكمله لا يعمل ولا يستجيب حتى ينتهي الملف, وأنا أريد البرنامج يعمل أثناء تشغيل الملف

فهل توجد طريقة لتشغيل ملف صوتي وبعد أن ينتهي يشتغل ملف صوتي آخر باستخدام My.Computer.Audio

#15

السلام عليكم ورحمه الله وبركاته

اخي الاجراء Computer.Audio.Play يقبل مسار الملف الصوتي (wav.) اما الصوت يمكننا استخراجه كـ Stream لذا قمت بعمل نسخة في القرص الصلب من ثم قمت بتشغيله!!

.:: Wish to become better and better ::.

#16
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي الاجراء Computer.Audio.Play يقبل مسار الملف الصوتي (wav.) اما الصوت يمكننا استخراجه كـ Stream لذا قمت بعمل نسخة في القرص الصلب من ثم قمت بتشغيله!!

سأوضح لك

المشكلة الآن واحدة فقط وهي:

كيف أعرف أن ملف الصوت مازال قيد التشغيل أم قد أنتهى (لتشغيل ملف صوتي آخر), (علماً بأني سأستخدم مجال الأسماء My.Computer.Audio لتشغيل ملف الصوت)

يمكنني أن استخدم تايمر لوضع كود الاستعلام به

ولكن ماهو كود الاستعلام اللازم وضعة ضمن الـ Timer ؟؟؟

#17

السلام عليكم ورحمه الله وبركاته

اخي اكتشفت انه يمكنك قراءة الصوت مباشرة من ال Stream بدون خزنه في القرص الصلب عبر الكود التالي

My.Computer.Audio.Play(data(), AudioPlayMode.Background)

.:: Wish to become better and better ::.

#18
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي اكتشفت انه يمكنك قراءة الصوت مباشرة من ال Stream بدون خزنه في القرص الصلب عبر الكود التالي

My.Computer.Audio.Play(data(), AudioPlayMode.Background)

أعلم هذا, وذلك لأنك استخدمت My.Computer.Audio

ولكن المشكلة الآن واحدة فقط وهي:

كيف أعرف أن ملف الصوت مازال قيد التشغيل أم قد أنتهى (لتشغيل ملف صوتي آخر), (علماً بأني سأستخدم مجال الأسماء My.Computer.Audio لتشغيل ملف الصوت)

EngPeek كتب:

ما هذا؟!!

تم تعديل هذه المشاركة بواسطة اأإبراهيم في 29 يونيو 2011 في 01:16

#19

السلام عليكم ورحمه الله وبركاته

اخي استخدم AudioPlayMode.WaitToComplete فلو قمت بتشغيل صوت اخر لن يشتغل الا بعد انتهاء الاول ..

.:: Wish to become better and better ::.

#20
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي استخدم AudioPlayMode.WaitToComplete فلو قمت بتشغيل صوت اخر لن يشتغل الا بعد انتهاء الاول ..

يبدو أنك لم تلاحظ ماكتبت في المشاركة رقم 14 هنا

قلت إن WaitToComplete مشكلتها أنها توقف البرنامج كله عن العمل وتجعله لا يستجيب لأي شىء,

!!!!

تم تعديل هذه المشاركة بواسطة اأإبراهيم في 29 يونيو 2011 في 14:09

#21

السلام عليكم ورحمه الله وبركاته

اخي مو مشكله يمكنك استخدام البرمجه الغير متزامنة, شوف الرابط التالي /index.php?showtopic=243793

.:: Wish to become better and better ::.

#22
VB Helper كتب:

السلام عليكم ورحمه الله وبركاته

اخي مو مشكله يمكنك استخدام البرمجه الغير متزامنة, شوف الرابط التالي /index.php?showtopic=243793

هل يمكنك أن تعطني مثالاً, كيف استخدم البرمجة الغير متزامنة لتشغيل الصوت

لأني في الحقيقة لم أفهم من الرابط السابق

#23

السلام علكم ورحمه الله وبركاته

اخي يوجد مثال مرفق يمكنك الاستفاده منه ..

.:: Wish to become better and better ::.

#24
VB Helper كتب:

السلام علكم ورحمه الله وبركاته

اخي يوجد مثال مرفق يمكنك الاستفاده منه ..

أقصد مثال لتشغيل ملف صوت باستخدام My.Computer.Audio والطريقة AudioPlayMode.WaitToComplete

#25

السلام عليكم ورحمه الله وبركاته

اخي الاحظ ان الفئه Audio لا تملك اجراء غير متزامن لتشغيل الصوت لذا جرب الكود التالي المذكور في المرفق لموضوع ال Asynchonous Programming


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim thread As New Thread(New ThreadStart(AddressOf Play))
thread.Start()
End Sub

Sub Play()
My.Computer.Audio.Play("1.wav", AudioPlayMode.WaitToComplete)
My.Computer.Audio.Play("2.wav", AudioPlayMode.WaitToComplete)
End Sub

.:: Wish to become better and better ::.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…