• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Từng bước xây dựng chương trình xem truyền hình trực tuyến

Các bài viết hướng dẫn, giúp các bạn hiểu và tiếp cận với Visual Basic nhanh hơn
User avatar
tuyen_dt18
Guru
Guru
Posts: 261
Joined: Sat 19/04/2008 8:46 pm
Location: Hưng Yên
Been thanked: 43 times
Contact:

Từng bước xây dựng chương trình xem truyền hình trực tuyến

Postby tuyen_dt18 » Wed 27/06/2012 11:39 am

Tên bài viết: Xây dựng chương trình xem truyền hình trực tuyến
Tác giả: tuyen_dt18
Cấp độ bài viết: Chưa đánh giá
Tóm tắt: Viết chương trình xem truyền hình trực tuyến sử dụng ngôn ngữ VB6.0


Hôm nay tôi sẽ hướng dẫn các bạn từng bước đi xây dựng chương trình xem truyền hình trực tuyến đơn giản qua kinh nghiệm của mình.

Đầu tiên tôi xin giới thiệu qua về cách thức mà chương trình làm việc :
Các chương trình truyền hình được các nhà đài lưu trữ với các định dạng phổ biến như : FLash video, Real video, Quicktime video, Windows Media video, ... Vì vậy ta sẽ sử dụng các trình phát tương ứng cho mỗi định dạng. Để phân biệt các định dạng, ta đặt cho mỗi định dạng 1 cái tên hay một con số unique (không trùng lặp). Sau đó dựa vào thông tin này, trong chương trình chúng ta sẽ tạo các trình phát thích hợp.

Tiếp theo, chúng ta bắt đầu thiết kế chương trình :

Thiết kế Form gồm 1 ListBox với tên mặc định (List1).

1.jpg
Thiết kế Form


Tham chiếu đến đối tượng Player sẽ sử dụng (Flash và Windows Media Player) :
2.jpg
Tham chiếu đến đối tượng Shockwave Flash
2.jpg (73.94 KiB) Viewed 4869 times

3.jpg
Tham chiếu đến Windows Media Player
3.jpg (68.88 KiB) Viewed 4869 times

Sau đó thêm 1 đối tượng Windows Media Player vào Form để tên mặc định
4.jpg
Thêm đối tượng Windows Media Player vào Form

Còn đối tượng Shockwave Flash chúng ta thêm lúc Runtime bằng code

Sau đó mở cửa sổ code để viết mã cho chương trình(Nhấn phải chuột lên Form chọn "View code").

Code 1 : Khai báo danh sách các trình phát mà chương trình sử dụng :
  1. Private Enum MediaPlayer
  2.     FlashPlayer = 0
  3.     WindowsMediaPlayer = 1
  4. End Enum


Code 2 : Khai báo kiểu bản ghi lưu thông tin 1 kênh.
[vb]Private Type ChanelInfo
MediaType As MediaPlayer
ID As String
Title As String
PlayerSource As String
MediaSource As String
End Type
[/vb]

Code 3 : Khai báo các biến thể hiện của trình phát
[vb]Private m_FlashPlayer As Object
Private m_WindowsMediaPlayer As Object
'
Private m_Chanels() As ChanelInfo
Private m_ChanelCount As Long[/vb]

Code 4 : Tạo và Hủy đối tượng Shockwave Flash.
[vb]Private Sub CreateFlashPlayer(ByVal bInit As Boolean)
On Error GoTo ErrorHandler
If (bInit) Then
If (m_FlashPlayer Is Nothing) Then
Set m_FlashPlayer = Me.Controls.Add("ShockwaveFlash.ShockwaveFlash", "m_FlashPlayer")
End If
With m_FlashPlayer
.AllowFullScreen = "true"
.Move 0, 0, Picture1.Left, Me.ScaleHeight
.Visible = False
End With
Else
If (Not m_FlashPlayer Is Nothing) Then
Me.Controls.Remove "m_FlashPlayer"
Set m_FlashPlayer = Nothing
End If
End If
Exit Sub
ErrorHandler:
Err.Clear
End Sub[/vb]

Code 5 : Tạo và Hủy đối tượng Windows Media Player.
[vb]Private Sub CreateWindowsMediaPlayer(ByVal bInit As Boolean)
On Error GoTo ErrorHandler
If (bInit) Then
If (m_WindowsMediaPlayer Is Nothing) Then
Set m_WindowsMediaPlayer = WindowsMediaPlayer1
End If
With m_WindowsMediaPlayer
.settings.autoStart = True
.Move 0, 0, List1.Left, Me.ScaleHeight
.enableContextMenu = False
.stretchToFit = True
.Visible = False
End With
Else
If (Not m_WindowsMediaPlayer Is Nothing) Then
Me.Controls.Remove "m_WindowsMediaPlayer"
Set m_WindowsMediaPlayer = Nothing
End If
End If

Exit Sub
ErrorHandler:
Err.Clear
End Sub[/vb]

Code 6 : Thêm 1 kênh vào danh sách.
[vb]Private Sub AddChanel(ByVal MediaType As MediaPlayer, Optional ByVal ID As String = "", Optional ByVal Title As String, Optional ByVal PlayerSource As String, Optional ByVal MediaSource As String)
If (m_ChanelCount < 0) Then m_ChanelCount = 0
ReDim Preserve m_Chanels(m_ChanelCount)
With m_Chanels(m_ChanelCount)
.ID = ID
.MediaSource = MediaSource
.MediaType = MediaType
.PlayerSource = PlayerSource
.Title = Title
End With
'
m_ChanelCount = m_ChanelCount + 1
End Sub[/vb]

Code 7 : Phát 1 kênh.
[vb]Private Sub PlayChanel(ByVal Index As Long)
'A^?n tat ca cac player hien tai
If (Not m_FlashPlayer Is Nothing) Then
m_FlashPlayer.Stop
m_FlashPlayer.Visible = False
m_FlashPlayer.FlashVars = ""
m_FlashPlayer.Movie = "?"
End If
If (Not m_WindowsMediaPlayer Is Nothing) Then
m_WindowsMediaPlayer.Controls.Stop
m_WindowsMediaPlayer.URL = ""
m_WindowsMediaPlayer.Visible = False
End If
'
If (m_ChanelCount <= 0) Then Exit Sub
'
With m_Chanels(Index)
Select Case .MediaType
Case MediaPlayer.FlashPlayer
If (Not m_FlashPlayer Is Nothing) Then
m_FlashPlayer.Visible = True
m_FlashPlayer.Move 0, 0, List1.Left, ScaleHeight
m_FlashPlayer.Movie = .PlayerSource & "?" & .MediaSource & "&autostart=true"
m_FlashPlayer.Play
End If
Case MediaPlayer.WindowsMediaPlayer
If (Not m_WindowsMediaPlayer Is Nothing) Then
m_WindowsMediaPlayer.Visible = True
m_WindowsMediaPlayer.settings.autoStart = True
m_WindowsMediaPlayer.Move 0, 0, List1.Left, Me.ScaleHeight '- StatusBar.Height
m_WindowsMediaPlayer.URL = .MediaSource
m_WindowsMediaPlayer.Controls.Play
End If
End Select
End With
End Sub[/vb]

Code 8 : Các hàm bổ sung.
[vb]Private Sub InitChanelList()
AddChanel FlashPlayer, "THVL1", "Truyen hinh Vinh Long 1", "http://player.longtailvideo.com/player.swf", "streamer=rtmp://123.30.108.77/live/THVL1&file=THVL1"
AddChanel WindowsMediaPlayer, "LA34", "Truyen hinh Long An", "", "mms://la34.com.vn/LA34TV e354345dgdfbbfrgrfthrthteghytu67tu857 fghtfrh567 fhjrfye5ytey b"
End Sub
'
Private Sub Form_Load()
Call InitChanelList
Call CreateFlashPlayer(True)
Call CreateWindowsMediaPlayer(True)
'
If (m_ChanelCount > 0) Then
Dim I As Long
For I = 0 To m_ChanelCount - 1
List1.AddItem m_Chanels(I).Title
Next I
End If
End Sub

Private Sub List1_DblClick()
PlayChanel List1.ListIndex
End Sub[/vb]

Sau khi hoàn tất các bước : Các bạn chạy chương trình và DblClick vào 1 mục trên List box để Test.
5.jpg
Kết quả

Quả là đơn giản phải không các bạn ! Điều các bạn cần làm là đi sưu tầm link để giúp chương trình phong phú hơn. Với dạng kênh sử dụng định dạng Windows Media Video : các bạn chỉ cần tìm link đến video. Còn đối với dạng Flash Video : các bạn còn phải tìm cả link đến cái file có đuôi .SWF để chơi file Flash nữa.
Các link này rất dễ để tìm thấy bằng cách vào các trang web cung cấp dịch vụ xem truyền hình, radio, nghe nhạc, xem phim,... xem mã nguồn của chúng rồi tìm kiếm các đoạn mã nhúng. Với các bạn - là dân IT thì chắc việc này là rất đơn giản ! CHÚC CÁC BẠN VUI VẺ !

Còn đây là mã nguồn hoàn chỉnh
TVOnline.zip
Mã nguồn hoàn chỉnh TVOnline
(2.71 KiB) Downloaded 909 times

Các bạn tải về chạy thử và làm như trên.


Hỏi ý kiến tác giả trước khi sử dụng hoặc trích dẫn rõ nguồn bài viết khi sử dụng.

baohiep
Thành viên danh dự
Thành viên danh dự
Posts: 109
Joined: Sun 27/12/2009 6:37 pm
Location: Tam Kỳ
Has thanked: 3 times
Been thanked: 9 times

Re: Từng bước xây dựng chương trình xem truyền hình trực tuy

Postby baohiep » Sun 01/07/2012 10:24 am

Cảm ơn bạn nhé! Mình đang định viết phần mềm xem TV nhưng không biết làm thế nào. Nhờ có bạn mà vấn đề đã được giải quyết.
I'm Hiep.

chaufcv
Posts: 3
Joined: Thu 16/04/2009 3:45 pm

Re: Từng bước xây dựng chương trình xem truyền hình trực tuy

Postby chaufcv » Sun 01/07/2012 3:41 pm

Rất hay nhưng mình không biết cách lấy link các kênh truyền hình bạn có thể hướng dẫn 1 vài ví dụ không? ví dụ như lấy kêch VTV3 ấy. Cám ơn bạn

Note : Mod ơi nút thanks ở đâu vậy? hay bài viết ít quá không có đủ chức năng trong diễn đàn.

gagacon
Posts: 1
Joined: Sun 01/07/2012 4:06 pm

Re: Từng bước xây dựng chương trình xem truyền hình trực tuy

Postby gagacon » Sun 01/07/2012 4:12 pm

Xin chào
Mình là thành viên mới đọc qua thấy bài này hay quá đăng ký làm thành viên luôn. Mình 1 số web sang tivi trực tuyến chỉ có trang tv24.vn là xem được nhiều kênh và không bị khóa. Nếu có cách lấy link ở đó thì OK quá. hy vong học hỏi được nhiều ở đây.

User avatar
tuyen_dt18
Guru
Guru
Posts: 261
Joined: Sat 19/04/2008 8:46 pm
Location: Hưng Yên
Been thanked: 43 times
Contact:

Re: Từng bước xây dựng chương trình xem truyền hình trực tuy

Postby tuyen_dt18 » Sun 01/07/2012 6:15 pm

Việc lấy link thì các bạn có thể tham khảo thêm trên mạng. Trong phạm vi bài viết này mình không có mục đích đề cập tới.
Tiếp nữa là việc link lấy được có xem được hay không là do nhà cung cấp. Ví dụ như của SCTV, nhà cung cấp này đã chặn cách truy cập trực tiếp vào link, và bạn phải xem trên trình duyệt hoặc bằng công cụ của chính nhà cung cấp. Tuy nhiên nếu có hiểu biết sâu về CNTT, chắc các bạn có thể hack để xem được bình thường(Đây chỉ là suy đoán, vì tôi vẫn chưa tìm ra cách để xem được).
Hỏi ý kiến tác giả trước khi sử dụng hoặc trích dẫn rõ nguồn bài viết khi sử dụng.

tam8601
Thành viên chính thức
Thành viên chính thức
Posts: 20
Joined: Mon 09/07/2012 11:14 am
Has thanked: 4 times

Re: Từng bước xây dựng chương trình xem truyền hình trực tuy

Postby tam8601 » Thu 12/07/2012 12:59 pm

đơn giản nhưng rất hay. cảm ơn bạn rất nhiều

User avatar
01632911829
Thành viên chính thức
Thành viên chính thức
Posts: 42
Joined: Sat 11/08/2012 12:50 pm
Location: Bình Thuận
Has thanked: 4 times
Been thanked: 2 times
Contact:

Re: Từng bước xây dựng chương trình xem truyền hình trực tuy

Postby 01632911829 » Sun 30/12/2012 1:24 pm

Hay. Nhưng nếu mình muốn dùng Play media mở 1 video trong Resource[Tự động play] , khởi động cùng máy tính, chạy xong rùi tắt thì sao.

User avatar
tuyen_dt18
Guru
Guru
Posts: 261
Joined: Sat 19/04/2008 8:46 pm
Location: Hưng Yên
Been thanked: 43 times
Contact:

Re: Từng bước xây dựng chương trình xem truyền hình trực tuy

Postby tuyen_dt18 » Tue 01/01/2013 9:37 pm

Như vậy thì cần Extract tệp tin trong resource ra tệp tin !
Hỏi ý kiến tác giả trước khi sử dụng hoặc trích dẫn rõ nguồn bài viết khi sử dụng.

User avatar
01632911829
Thành viên chính thức
Thành viên chính thức
Posts: 42
Joined: Sat 11/08/2012 12:50 pm
Location: Bình Thuận
Has thanked: 4 times
Been thanked: 2 times
Contact:

Re: Từng bước xây dựng chương trình xem truyền hình trực tuy

Postby 01632911829 » Wed 02/01/2013 12:43 pm

Ý mình là đại ca làm 1 demo cái ct mà mở 1 video đi theo thư mục of chương trình (hoặc mở bằng cách extract trong resouse ra á), khởi động cùng window


Return to “[VB] Bài viết hướng dẫn”

Who is online

Users browsing this forum: No registered users and 0 guests