raravaice
شنبه 04 اسفند 1386, 15:48 عصر
سلام
دوستان اگر اطلاع داشته باشن توی اینترنت انواع رادیو های آنلاین وجود داره که شما فقط قادر به گوش کردن صوت اونها هستید و با ابزار موجود نمیتونید صوت مربوط را از جایی دانلود یا ذخیره کنید برنامه زیر به همین منظور تهیه شده تا شما به راحتی بتونید یک stream مبتنی بر TCP و HTTP رو با همان کیفیت در حال پخش ذخیره کنید.
البته من چند تا کانال رادیویی قابل استفاده هم به صورت کامنت گزاشتم و دوستان هر کانالی رو که تمایل داشتن از روش صوت ذخیره کنن میتونن از کامنت در بیارن و برنامه رو اجرا کنن.
البته در نظر داشته باشید این برنامه رو من برای استفاده شخصی نوشته بودم و اصلا دنبال نوشتن برنامه سمت سرورش بودم که در خلل کار این برنامه رو ایجاد کردم گفتم خالی از لطف نیست بزارمش اینجا.
البته سعی کردم با #C هم برنامه رو وقف بدم ولی از اونجایی که من #C کم کار میکنم نمیدونم چرا کند عمل میکرد ولی به هر حال این سورس فوق العاده کار میکنه.
Imports System.Net.Sockets
Imports System.Text
Imports System.IO
Module Module1
Dim networkStream As NetworkStream
Dim sendBytes As ()
Dim bytes(65536) As Byte
Dim readbyte As Integer
Sub Main()
Dim tcpClient As New System.Net.Sockets.TcpClient()
'tcpClient.Connect("127.0.0.1", 8282) 'Test Local
'tcpClient.Connect("192.168.1.3", 5044) 'Test On Lan
'tcpClient.Connect("mega2.radioserver.co.uk", 8258)'2ng
tcpClient.Connect("160.79.128.61", 7836) 'Love Music
'tcpClient.Connect("160.79.128.61", 7826)'A Beatles Tribute
'tcpClient.Connect("160.79.128.62", 6618)'Best 80
'tcpClient.Connect("208.122.59.30", 7796)'Solo Piano
'tcpClient.Connect("160.79.128.62", 6128)'Modern
'tcpClient.Connect("160.79.128.40", 7816)'Jazz Piano
'tcpClient.Connect("208.122.59.30", 7686)'Oldies
'tcpClient.Connect("208.122.59.30", 7070) 'Classical Guitar
networkStream = tcpClient.GetStream()
If networkStream.CanWrite And networkStream.CanRead Then
sendBytes = Encoding.ASCII.GetBytes("GET / HTTP/1.1" & vbCrLf & "User-Agent: NSPlayer/10.0.0.3700 WMFSDK/10.0" & vbLf & vbLf)
networkStream.Write(sendBytes, 0, sendBytes.Length)
Dim i As Integer
For i = 0 To 50
bytes.Clone()
readbyte = networkStream.Read(bytes, 0, 65536) 'CInt(tcpClient.ReceiveBufferSize)))
'Console.Clear()
'Console.Write(i)
Dim thre As New Threading.Thread(AddressOf sav_)
Threading.Thread.Sleep(1000)
'If i > 0 Then
thre.Start()
'thre.Join()
Console.WriteLine(readbyte)
Next
networkStream.Close()
End If
End Sub
Sub sav_()
Dim v As New FileStream("c:\Radio.mp3", FileMode.Append)
v.Write(bytes, 0, readbyte)
v.Close()
End Sub
End Module
[B]راهنمایی : با زیاد کردن شماره حلقه For موجود میتونید زمان بیشتری از stream رو ذخیره کنید.
موفق باشید
کف مرتب فراموش نشه :تشویق:
دوستان اگر اطلاع داشته باشن توی اینترنت انواع رادیو های آنلاین وجود داره که شما فقط قادر به گوش کردن صوت اونها هستید و با ابزار موجود نمیتونید صوت مربوط را از جایی دانلود یا ذخیره کنید برنامه زیر به همین منظور تهیه شده تا شما به راحتی بتونید یک stream مبتنی بر TCP و HTTP رو با همان کیفیت در حال پخش ذخیره کنید.
البته من چند تا کانال رادیویی قابل استفاده هم به صورت کامنت گزاشتم و دوستان هر کانالی رو که تمایل داشتن از روش صوت ذخیره کنن میتونن از کامنت در بیارن و برنامه رو اجرا کنن.
البته در نظر داشته باشید این برنامه رو من برای استفاده شخصی نوشته بودم و اصلا دنبال نوشتن برنامه سمت سرورش بودم که در خلل کار این برنامه رو ایجاد کردم گفتم خالی از لطف نیست بزارمش اینجا.
البته سعی کردم با #C هم برنامه رو وقف بدم ولی از اونجایی که من #C کم کار میکنم نمیدونم چرا کند عمل میکرد ولی به هر حال این سورس فوق العاده کار میکنه.
Imports System.Net.Sockets
Imports System.Text
Imports System.IO
Module Module1
Dim networkStream As NetworkStream
Dim sendBytes As ()
Dim bytes(65536) As Byte
Dim readbyte As Integer
Sub Main()
Dim tcpClient As New System.Net.Sockets.TcpClient()
'tcpClient.Connect("127.0.0.1", 8282) 'Test Local
'tcpClient.Connect("192.168.1.3", 5044) 'Test On Lan
'tcpClient.Connect("mega2.radioserver.co.uk", 8258)'2ng
tcpClient.Connect("160.79.128.61", 7836) 'Love Music
'tcpClient.Connect("160.79.128.61", 7826)'A Beatles Tribute
'tcpClient.Connect("160.79.128.62", 6618)'Best 80
'tcpClient.Connect("208.122.59.30", 7796)'Solo Piano
'tcpClient.Connect("160.79.128.62", 6128)'Modern
'tcpClient.Connect("160.79.128.40", 7816)'Jazz Piano
'tcpClient.Connect("208.122.59.30", 7686)'Oldies
'tcpClient.Connect("208.122.59.30", 7070) 'Classical Guitar
networkStream = tcpClient.GetStream()
If networkStream.CanWrite And networkStream.CanRead Then
sendBytes = Encoding.ASCII.GetBytes("GET / HTTP/1.1" & vbCrLf & "User-Agent: NSPlayer/10.0.0.3700 WMFSDK/10.0" & vbLf & vbLf)
networkStream.Write(sendBytes, 0, sendBytes.Length)
Dim i As Integer
For i = 0 To 50
bytes.Clone()
readbyte = networkStream.Read(bytes, 0, 65536) 'CInt(tcpClient.ReceiveBufferSize)))
'Console.Clear()
'Console.Write(i)
Dim thre As New Threading.Thread(AddressOf sav_)
Threading.Thread.Sleep(1000)
'If i > 0 Then
thre.Start()
'thre.Join()
Console.WriteLine(readbyte)
Next
networkStream.Close()
End If
End Sub
Sub sav_()
Dim v As New FileStream("c:\Radio.mp3", FileMode.Append)
v.Write(bytes, 0, readbyte)
v.Close()
End Sub
End Module
[B]راهنمایی : با زیاد کردن شماره حلقه For موجود میتونید زمان بیشتری از stream رو ذخیره کنید.
موفق باشید
کف مرتب فراموش نشه :تشویق: