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

كيف احفظ مقطع صوتي داخل الداتا بيس

مغلق
بدأه lana2008 في 22 يونيو 2007 · 4 رد · 1,164 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

هلا كيف احفظ مقطع صوتي داخل الداتا بيس يعني نفس طريقة حفظ الصورة تتحول باينري ويس ولا في طرق ثانية

#3

انت بأيت بتتكلم بلغة الفرنجه ليه يا حازم كتير ؟ ربنا يستر عليك ومتتحولش وتبأه من إياهم :P ان شاء الله خير ويكون الموضوع بس مجرد ان مش عندك Keyboard عربي.

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

الطريقة الأخرى هي أن تحفظ الملف نفسه Binary داخل قاعدة البيانات, ومميزات هذه الطريقة حلت عيوب الطريقة السابقة بالاضافة إلى أنك ممكن تعمل Backup للـ Database في أي وقت وبهذا تكون عملت Backup للنظام بأكمله؛ الأمر الذي يصعب فعله ان استخدمت الطريقة السابقة. ومن عيوب هذه الطريقة طبعا أنها مهلكة ومستهلكة. ولكني أنصح بها, فبكتابة بعض الكود يمكنك أن تجعلها طريقة مثالية ( مثلا تستدعي البيانات الـ Binary منها ثم تحفظها كملفات في مجلد Temp وعندما تقرأ الملفات ان لم تجدها في الـ Temp قم باسترجاعها من قاعدة البيانات وخزنها في الـ Temp ثم اقرأها, وهذا شبيه بعمل مفهوم الـ Cache ) كما أنها ستسهل عليك عملية الـ Deployment.

على كل حال, أنت أدرى بنظامك الحالي فاختر الطريقة التي تراها الأفضل له تحديدا.

#Read

http://MoutazShams.blogspot.com

projects003.gif

أعتذر عن التغيب هذه الأيام نظرا للانشغال المريب

#4

ممكن مثال

#5

السلام عليكم هذا مثال على ذلك ,

لكن لو تطورين المشروع بحيث يتوافق مع فكرة معتز شمس , سيكون الاداء أفضل بكثير. إليك النصوص البرمجية لذلك

كود إضافة الصوت ..

 With OFD
			' Your custom Title
			.Title = "صندوق تحميل الصوت"
			.RestoreDirectory = True
			' Filtering to show only the wav file
			.Filter = "Image Files(*.WAV) |*.wav"
			' IF the sound Picked Up Then
			If .ShowDialog = Windows.Forms.DialogResult.OK Then
				' Insert Sound.
				Dim st As New FileStream(.FileName, FileMode.Open, FileAccess.Read)
				Dim mbr As BinaryReader = New BinaryReader(st)
				Dim buffer(st.Length) As Byte
				mbr.Read(buffer, 0, CInt(st.Length))
				st.Close()
				Using cnn As New OleDb.OleDbConnection(My.Settings.cnn)
					Using cmd As New OleDb.OleDbCommand( _
					"UPDATE CollectionSounds SET Sound = @Sound WHERE SoundID = @SoundID", cnn)
						With cmd
							.CommandType = CommandType.Text
							.Parameters.Add("@Sound", OleDbType.Binary).Value = buffer
							.Parameters.Add("@SoundID", OleDbType.Integer).Value = _
							CInt(SoundIDLabel1.Text)
							cnn.Open()
							.ExecuteNonQuery()
							MsgBox("Sound added successfully..")
						End With
					End Using
				End Using
			End If
		End With

كود قراءة الصوت.

 Private Sub PlayCurrentSound()
		Try
			Dim strSQL As String = _
			"SELECT Sound FROM CollectionSounds WHERE SoundID =" & CInt(SoundIDLabel1.Text)
			Using cnn As New OleDbConnection(My.Settings.cnn)
				Using cmd As New OleDbCommand(strSQL, cnn)
					Dim b() As Byte
					cnn.Open()
					b = cmd.ExecuteScalar()
					If (Not b Is Nothing) Then
						Dim stream As New MemoryStream(b, True)
						stream.Write(b, 0, b.Length)
						stream.Flush()
						My.Computer.Audio.Play(b, AudioPlayMode.WaitToComplete)
						strSQL = Nothing
						stream.Close()
						b = Nothing
					End If
				End Using
			End Using
		Catch ex As Exception
			MsgBox(ex.Message)
		End Try
	End Sub

و المرفق بالاسفل , قاعدة البيانات Access 2003 , و المشروع على VB.NET 2005

بالتوفيق إن شاء الله.

SoundDBApp.rar

تم تعديل هذه المشاركة بواسطة الشهاب الحارق في 23 يونيو 2007 في 17:48

في المثال يتضح المقال

هذا الموضوع مغلق.

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

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

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

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

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