• 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
Hình đại diện của người dùng
tuyen_dt18
Guru
Guru
Bài viết: 256
Ngày tham gia: T.Bảy 19/04/2008 8:46 pm
Đến từ: Hưng Yên
Been thanked: 43 time
Liên hệ:

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

Gửi bàigửi bởi tuyen_dt18 » T.Tư 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) Đã xem 3527 lần

3.jpg
Tham chiếu đến Windows Media Player
3.jpg (68.88 KiB) Đã xem 3527 lần

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.
  1. Private Type ChanelInfo
  2.     MediaType As MediaPlayer
  3.     ID As String
  4.     Title As String
  5.     PlayerSource As String
  6.     MediaSource As String
  7. End Type
  8.  


Code 3 : Khai báo các biến thể hiện của trình phát
  1. Private m_FlashPlayer As Object
  2. Private m_WindowsMediaPlayer As Object
  3. '
  4. Private m_Chanels() As ChanelInfo
  5. Private m_ChanelCount As Long


Code 4 : Tạo và Hủy đối tượng Shockwave Flash.
  1. Private Sub CreateFlashPlayer(ByVal bInit As Boolean)
  2.     On Error GoTo ErrorHandler
  3.     If (bInit) Then
  4.         If (m_FlashPlayer Is Nothing) Then
  5.             Set m_FlashPlayer = Me.Controls.Add("ShockwaveFlash.ShockwaveFlash", "m_FlashPlayer")
  6.         End If
  7.         With m_FlashPlayer
  8.             .AllowFullScreen = "true"
  9.             .Move 0, 0, Picture1.Left, Me.ScaleHeight
  10.             .Visible = False
  11.         End With
  12.     Else
  13.         If (Not m_FlashPlayer Is Nothing) Then
  14.             Me.Controls.Remove "m_FlashPlayer"
  15.             Set m_FlashPlayer = Nothing
  16.         End If
  17.     End If
  18.     Exit Sub
  19. ErrorHandler:
  20.     Err.Clear
  21. End Sub


Code 5 : Tạo và Hủy đối tượng Windows Media Player.
  1. Private Sub CreateWindowsMediaPlayer(ByVal bInit As Boolean)
  2.     On Error GoTo ErrorHandler
  3.     If (bInit) Then
  4.         If (m_WindowsMediaPlayer Is Nothing) Then
  5.             Set m_WindowsMediaPlayer = WindowsMediaPlayer1
  6.         End If
  7.         With m_WindowsMediaPlayer
  8.             .settings.autoStart = True
  9.             .Move 0, 0, List1.Left, Me.ScaleHeight
  10.             .enableContextMenu = False
  11.             .stretchToFit = True
  12.             .Visible = False
  13.         End With
  14.     Else
  15.         If (Not m_WindowsMediaPlayer Is Nothing) Then
  16.             Me.Controls.Remove "m_WindowsMediaPlayer"
  17.             Set m_WindowsMediaPlayer = Nothing
  18.         End If
  19.     End If
  20.    
  21.     Exit Sub
  22. ErrorHandler:
  23.     Err.Clear
  24. End Sub


Code 6 : Thêm 1 kênh vào danh sách.
  1. 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)
  2.     If (m_ChanelCount < 0) Then m_ChanelCount = 0
  3.     ReDim Preserve m_Chanels(m_ChanelCount)
  4.     With m_Chanels(m_ChanelCount)
  5.         .ID = ID
  6.         .MediaSource = MediaSource
  7.         .MediaType = MediaType
  8.         .PlayerSource = PlayerSource
  9.         .Title = Title
  10.     End With
  11.     '
  12.    m_ChanelCount = m_ChanelCount + 1
  13. End Sub


Code 7 : Phát 1 kênh.
  1. Private Sub PlayChanel(ByVal Index As Long)
  2.     'A^?n tat ca cac player hien tai
  3.    If (Not m_FlashPlayer Is Nothing) Then
  4.         m_FlashPlayer.Stop
  5.         m_FlashPlayer.Visible = False
  6.         m_FlashPlayer.FlashVars = ""
  7.         m_FlashPlayer.Movie = "?"
  8.     End If
  9.     If (Not m_WindowsMediaPlayer Is Nothing) Then
  10.         m_WindowsMediaPlayer.Controls.Stop
  11.         m_WindowsMediaPlayer.URL = ""
  12.         m_WindowsMediaPlayer.Visible = False
  13.     End If
  14.     '
  15.    If (m_ChanelCount <= 0) Then Exit Sub
  16.     '
  17.    With m_Chanels(Index)
  18.         Select Case .MediaType
  19.             Case MediaPlayer.FlashPlayer
  20.                 If (Not m_FlashPlayer Is Nothing) Then
  21.                     m_FlashPlayer.Visible = True
  22.                     m_FlashPlayer.Move 0, 0, List1.Left, ScaleHeight
  23.                     m_FlashPlayer.Movie = .PlayerSource & "?" & .MediaSource & "&autostart=true"
  24.                     m_FlashPlayer.Play
  25.                 End If
  26.             Case MediaPlayer.WindowsMediaPlayer
  27.                 If (Not m_WindowsMediaPlayer Is Nothing) Then
  28.                     m_WindowsMediaPlayer.Visible = True
  29.                     m_WindowsMediaPlayer.settings.autoStart = True
  30.                     m_WindowsMediaPlayer.Move 0, 0, List1.Left, Me.ScaleHeight '- StatusBar.Height
  31.                    m_WindowsMediaPlayer.URL = .MediaSource
  32.                     m_WindowsMediaPlayer.Controls.Play
  33.                 End If
  34.         End Select
  35.     End With
  36. End Sub


Code 8 : Các hàm bổ sung.
  1. Private Sub InitChanelList()
  2.     AddChanel FlashPlayer, "THVL1", "Truyen hinh Vinh Long 1", "http://player.longtailvideo.com/player.swf", "streamer=rtmp://123.30.108.77/live/THVL1&file=THVL1"
  3.     AddChanel WindowsMediaPlayer, "LA34", "Truyen hinh Long An", "", "mms://la34.com.vn/LA34TV                                          e354345dgdfbbfrgrfthrthteghytu67tu857                                  fghtfrh567 fhjrfye5ytey b"
  4. End Sub
  5. '
  6. Private Sub Form_Load()
  7.     Call InitChanelList
  8.     Call CreateFlashPlayer(True)
  9.     Call CreateWindowsMediaPlayer(True)
  10.     '
  11.    If (m_ChanelCount > 0) Then
  12.         Dim I As Long
  13.         For I = 0 To m_ChanelCount - 1
  14.             List1.AddItem m_Chanels(I).Title
  15.         Next I
  16.     End If
  17. End Sub
  18.  
  19. Private Sub List1_DblClick()
  20.     PlayChanel List1.ListIndex
  21. End Sub


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) Đã tải 846 lần

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ự
Bài viết: 109
Ngày tham gia: CN 27/12/2009 6:37 pm
Đến từ: Tam Kỳ
Has thanked: 3 time
Been thanked: 9 time

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

Gửi bàigửi bởi baohiep » CN 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
Bài viết: 2
Ngày tham gia: T.Năm 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

Gửi bàigửi bởi chaufcv » CN 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
Bài viết: 1
Ngày tham gia: CN 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

Gửi bàigửi bởi gagacon » CN 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.

Hình đại diện của người dùng
tuyen_dt18
Guru
Guru
Bài viết: 256
Ngày tham gia: T.Bảy 19/04/2008 8:46 pm
Đến từ: Hưng Yên
Been thanked: 43 time
Liên hệ:

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

Gửi bàigửi bởi tuyen_dt18 » CN 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
Bài viết: 20
Ngày tham gia: T.Hai 09/07/2012 11:14 am
Has thanked: 4 time

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

Gửi bàigửi bởi tam8601 » T.Năm 12/07/2012 12:59 pm

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

Hình đại diện của người dùng
01632911829
Thành viên chính thức
Thành viên chính thức
Bài viết: 42
Ngày tham gia: T.Bảy 11/08/2012 12:50 pm
Đến từ: Bình Thuận
Has thanked: 4 time
Been thanked: 2 time
Liên hệ:

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

Gửi bàigửi bởi 01632911829 » CN 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.

Hình đại diện của người dùng
tuyen_dt18
Guru
Guru
Bài viết: 256
Ngày tham gia: T.Bảy 19/04/2008 8:46 pm
Đến từ: Hưng Yên
Been thanked: 43 time
Liên hệ:

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

Gửi bàigửi bởi tuyen_dt18 » T.Ba 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.

Hình đại diện của người dùng
01632911829
Thành viên chính thức
Thành viên chính thức
Bài viết: 42
Ngày tham gia: T.Bảy 11/08/2012 12:50 pm
Đến từ: Bình Thuận
Has thanked: 4 time
Been thanked: 2 time
Liên hệ:

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

Gửi bàigửi bởi 01632911829 » T.Tư 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


Quay về “[VB] Bài viết hướng dẫn”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách