View Full Version : سوال: پخش فایل صوتی که به صورت فایل استریم در دیتابیس ذخیره شده است
hamidrezax1
چهارشنبه 15 آذر 1402, 07:22 صبح
با سلام و خسته نباشید خدمت همه دوستان
من یک فایل صوتی دارم که در دیتابیس به صورت استریم ذخیره شده است.به صورت بایت حالا چیزی که من میخوام این هستش که مثلا اگر حجم فایل من 24000 بایت هستش من اون تقسیم بر 4 کنم که میشه 4 فایل 6000 بایتی و من قسمت سوم بایت ها رو بتونم فقط پخش کنم توی مدیا پلیر(کلا انگار فایل صوتی رو 4 قسمت کنم و قسمت سوم رو فقط پخش کنم انگار که برشش داده باشم)
ممنون میشم راهنمایی بفرمایید
ROSTAM2
پنج شنبه 16 آذر 1402, 06:46 صبح
با سلام و خسته نباشید خدمت همه دوستان
من یک فایل صوتی دارم که در دیتابیس به صورت استریم ذخیره شده است.به صورت بایت حالا چیزی که من میخوام این هستش که مثلا اگر حجم فایل من 24000 بایت هستش من اون تقسیم بر 4 کنم که میشه 4 فایل 6000 بایتی و من قسمت سوم بایت ها رو بتونم فقط پخش کنم توی مدیا پلیر(کلا انگار فایل صوتی رو 4 قسمت کنم و قسمت سوم رو فقط پخش کنم انگار که برشش داده باشم)
ممنون میشم راهنمایی بفرمایید
سلام. بنظر من به هر مقدار که می خوای ذخیره سازی کنی قبل از ذخیره سازی جدا سازی بخش های فایل رو طبق زمانبندی داشته باش تا همه قسمت ها بعنوان یک فایل صونی مجزا در بیاد بعد ذخیره سازی کن.
آشنایی اولیه با FFMPEG (آموزش دانلود و نحوه استفاده از ابزار FFMPEG) (https://www.aparat.com/v/rv9u6)
ffmpeg.org (https://unix.stackexchange.com/questions/280767/how-do-i-split-an-audio-file-into-multiple)
اما اگه از ساختار فایل صوتی سر در آوردید می تونید بایت های قالب فایل صوتی رو برای پحش جدا کنید و زمان پخش بایت های قالب فایل و بایت های فایل صوتی رو بهم الحاق کنید تا اجرا بشه.
ROSTAM2
پنج شنبه 16 آذر 1402, 08:48 صبح
یک روش دیگه هم که می شه استفاده کرد استفاده از زمانبندی و تایمر هست. اگر Position به زمان مدّ نظر برسه Player.Stop بشه.
hamidrezax1
پنج شنبه 16 آذر 1402, 09:32 صبح
سلام دوست عزیز ممنونم از لطفتون
اگر امکانش هست یه تیکه کد قرار بدین.من تمام مطالب شما رودیدم و از وقتی که گذاشتید ممنونم.منتحی بحث من اینه که من الان اطلاعاتم توی دیتابیس به صورت بیت ذخیره شده و من مثلا از بیت 1000 تا 1100 رو فقط میخوام به wav تبدیل کنم
لطفا اگر کدی دارید قرار بدید چون من اینترنت چک کردم و کد های جستجو شده یکم برام مجهول بود.با تشکر(لطفا کد):لبخندساده:
ROSTAM2
جمعه 17 آذر 1402, 01:24 صبح
سلام دوست عزیز ممنونم از لطفتون
اگر امکانش هست یه تیکه کد قرار بدین.من تمام مطالب شما رودیدم و از وقتی که گذاشتید ممنونم.منتحی بحث من اینه که من الان اطلاعاتم توی دیتابیس به صورت بیت ذخیره شده و من مثلا از بیت 1000 تا 1100 رو فقط میخوام به wav تبدیل کنم
لطفا اگر کدی دارید قرار بدید چون من اینترنت چک کردم و کد های جستجو شده یکم برام مجهول بود.با تشکر(لطفا کد):لبخندساده:
Public Class Form1
Private Function GetSeconds() As Double
With DateTimePicker1.Value
Dim TS As New TimeSpan(.Hour, .Minute, .Second)
Return TS.TotalSeconds
End With
End Function
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Dim OFD As New OpenFileDialog With {.Filter = "MP3 Audio Files(*.mp3)|*.mp3"}
With OFD
If .ShowDialog(Me) = Windows.Forms.DialogResult.Cancel Then Exit Sub
Me.TextBox1.Text = .FileName
End With
End Sub
Dim WithEvents Spliter As Process
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'ffmpeg -i somefile.mp3 -f segment -segment_time 3 -c copy out%03d.mp3
'ffmpeg -i somefile.mp3 -map 0 -f segment -segment_time 3 -c copy out%03d.mp3
'ffmpeg -i your_audio_file.mp3 -acodec copy -t 00:00:30 -ss 00:00:00 split_audio_file.mp3
Dim FFMpeg As String = IO.Path.GetFullPath(".\Tools\ffmpeg.exe")
Dim sinf As New ProcessStartInfo
With sinf
.WorkingDirectory = IO.Path.GetFullPath(".\Tools")
.FileName = FFMpeg
.UseShellExecute = False
'ffmpeg -i somefile.mp3 -map 0 -f segment -segment_time 3 -c copy out%03d.mp3
.Arguments = String.Format("-i {0} -map 0 -f segment -segment_time {1} -c copy {2}%03d.mp3", Me.TextBox1.Text, GetSeconds, Me.TextBox2.Text)
End With
Spliter = Process.Start(sinf)
Me.ProgressBar1.Style = ProgressBarStyle.Marquee
Do Until Spliter.HasExited = True
Application.DoEvents()
Loop
End Sub
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
With DateTimePicker1
.Value = New DateTime(Now.Year, Now.Month, Now.Day, 0, 1, 0)
End With
End Sub
Private Sub Spliter_Exited(sender As Object, e As System.EventArgs) Handles Spliter.Exited
Me.ProgressBar1.Style = ProgressBarStyle.Blocks
MsgBox("Audio file Spliting Completed!", MsgBoxStyle.Information)
End Sub
End Class
155106
155107
مثل تصویر یک پوشه Tools برای پروژه بسازید و فایل ffmpeg.exe را به این پوشه اضافه کنید و از Properties فایل خصوصیت Copy to Output Directory رو CopyIfNewer قرار داده و از کد ارسالی برای Form1 استفاده کنید.
155108
دانلود سورس کد پروژه.... (https://eitaa.com/vbprogramming/417)
ROSTAM2
جمعه 17 آذر 1402, 20:56 عصر
آموزش جدا سازی یک فایل صوتی به قسمت های مساوی طبق زمانبندی دلخواه با FFMPEG
در این ویدیو نحوه جداسازی یک فایل صوتی به قسمت های مساوی بر طبق زمان با استفاده از FFMPEG.EXE توضیح داده می شه....
https://aparat.com/v/C2aqQ
hamidrezax1
دوشنبه 20 آذر 1402, 09:36 صبح
سلام مهندس وقت بخیر فایل ارسالی
ffmpeg.exe قابلیت دانلود نداره امکانش هست راهنمایی بفرمایید
ROSTAM2
دوشنبه 20 آذر 1402, 16:59 عصر
سلام مهندس وقت بخیر فایل ارسالی
ffmpeg.exe
قابلیت دانلود نداره امکانش هست راهنمایی بفرمایید
سلام.
این ک من ارسالیدم سورس پروژه است
فکر کنم باید به کانالو بپیوندی بعداً دانلود کنی....
ffmpeg باید از سایت خودش دانلود کنید:
نحوه دانلود FFMPEG (aparat.com) (https://www.aparat.com/v/rv9u6)
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.