Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 63 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
63
Dung lượng
3,25 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - LÊ DUY Họ tên tác giả luận văn LÊ DUY ĐIỆN TỬ VIỄN THÔNG TÊN ĐỀ TÀI LUẬN VĂN NGHIÊN CỨU VÀ PHÁT TRIỂN HỆ THỐNG DỊCH VỤ TRUYỀN HÌNH GIAO THỨC INTERNET IPTV LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ VIỄN THƠNG KHỐ 2010B Hà Nội – Năm 2012 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Họ tên tác giả luận văn LÊ DUY TÊN ĐỀ TÀI LUẬN VĂN NGHIÊN CỨU VÀ PHÁT TRIỂN HỆ THỐNG DỊCH VỤ TRUYỀN HÌNH GIAO THỨC INTERNET IPTV Chuyên ngành : ĐIỆN TỬ VIỄN THÔNG LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ VIỄN THÔNG NGƯỜI HƯỚNG DẪN KHOA HỌC : PGS TS NGUYỄN TIẾN DŨNG Hà Nội – Năm 2012 LỜI CAM ĐOAN Em xin cam đoan đồ án tốt nghiệp sản phẩm trình bày em tự thiết kế, thực triển khai Em không chép tài liệu từ nơi khác mà khơng có trích dẫn cụ thể Nếu có vấn đề vấn đề quyền hay chép nội dung, em xin chịu toàn trách nhiệm trước nhà trường pháp luật Sinh viên thực hiện: Lê Duy MỤC LỤC LỜI CAM ĐOAN DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT DANH MỤC BẢNG DANH MỤC HÌNH VẼ ĐỒ THỊ .8 MỞ ĐẦU .9 Chương TỔNG QUAN 10 1.1 Tổng quan IPTV 10 1.1.1 Khái niệm 10 1.1.2 Đặc điểm 11 1.1.3 Sơ đồ hệ thống 13 1.1.4 Các dịch vụ IPTV 14 1.2 Mục tiêu đối tượng đề tài 16 1.3 Tình hình ngồi nước 16 1.3.1 Sự phát triển internet 16 1.3.2 Dịch vụ IPTV phát triển mạnh mẽ giới 18 1.3.3 Nghiên cứu ứng dụng IPTV dịch vụ gia tăng Việt Nam 18 1.3.4 Xu hướng phát triển dịch vụ công nghệ 19 Chương THIẾT KẾ HỆ THỐNG CUNG CẤP DỊCH VỤ IPTV 21 2.1 Sơ đồ kiến trúc hệ thống cung cấp dịch vụ IPTV 21 2.2 Thiết kế xây dựng giao diện người dùng webserver 22 2.2.1 Môi trường thiết kế phát triển 22 2.2.2 Giải pháp triển khai webserver 23 2.2.3 Thiết kế kiến trúc 24 2.2.4 Thiết kế giao diện 25 2.3 Thiết kế xây dựng hệ thống quản lý dịch vụ quản lý thuê bao 27 2.3.1 Thiết kế kiến trúc hệ thống quản lí dịch vụ thuê bao 27 2.3.2 Công cụ môi trường phát triển 30 2.3.3 Thiết kế sở liệu 31 2.3.4 Phát triển phần mềm 35 2.4 Thiết kế xây dựng hệ thống quản lý video video server 35 2.4.1 Môi trường phát triển giải pháp triển khai video server 35 2.4.2 Thiết kế kiến trúc hệ thống streaming server 36 2.5 Hệ thống phía người dùng 38 2.5.1 Hệ thống người dùng với Internet TV kết hợp settop box 38 2.5.2 Hệ thống người dùng với máy tính PC phần mềm 39 Chương KẾT QUẢ VÀ THỬ NGHIỆM .43 KẾT LUẬN 50 TÀI LIỆU THAM KHẢO 52 PHỤ LỤC 53 DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT Ký hiệu Ý nghĩa Nghĩa tiếng Việt IPTV Internet Protocol Television Truyền hình giao thức internet VoD Video on Demand Video theo yêu cầu MoD Music on Demand Âm nhạc theo yêu cầu STB Settop Box Thiết bị truy cập dịch vụ IPTV cho máy thu hình Giao thức internet IP Internet Protocol EPG Electronic Programming Guide TV Television Máy thu hình ti vi ITU International Telecommunication Liên minh viễn thông quốc tế Union HD High definition RTP Real-time Transport Protocol Giao thức truyền tải thời gian thực RTSP Real Time Streaming Protocol Giao thức streaming thời gian thực RTMP Real Time Messaging Protocol Giao thức truyền tin thời gian thực RTCP RTP Control Protocol Giao thức điều khiển thời gian thực TCP Transmission Control Protocol Giao thức điều khiển chuyển vận UDP User Datagram Protocol Giao thức truyền tin không tin cậy HTML Hyper Text Markup Language Ngôn ngữ đánh dấu siêu văn HTTP Hyper Text Transfer Protocol Giao thức truyền tải siêu văn MPEG Moving Picture Experts Group SQL Structured Query Language Ngơn ngữ truy vấn mang tính cấu trúc Bảng 0-1: Danh mục kí hiệu chữ viết tắt DANH MỤC BẢNG Bảng 0-1: Danh mục kí hiệu chữ viết tắt DANH MỤC HÌNH VẼ ĐỒ THỊ Hình 1-1: Giới thiệu IPTV 11 Hình 1-2: Sơ đồ hệ thống IPTV 13 Hình 1-3: Sơ đồ cung cấp dịch vụ video quảng bá 14 Hình 1-4: Sơ đồ cung cấp dịch vụ video theo yêu cầu 15 Hình 1-5: World Wide Web – nguồn: Wikipedia.com .17 Hình 1-6: Biểu đồ số thuê bao IPTV nước giới (nguồn www.iptvnews.com) 18 Hình 1-7: Dịch vụ MyTV VASC (IPTV) 19 Hình 2-1: Mơ tả sơ đồ mô hệ thống IPTV .21 Hình 2-2: Phần mềm web matrix .22 Hình 2-3: Giao diện phần mềm hỗ trợ máy chủ web: xampp 23 Hình 2-4: Hoạt động máy chủ web hệ thống cung cấp dịch vụ IPTV 24 Hình 2-5: Giao diện trang web IPTV .26 Hình 2-6: Hoạt động đăng kí kết nối với video server 28 Hình 2-7: Hoạt động cấp phép truy cập video 29 Hình 2-8: Hoạt động thay đổi thơng tin tài khoản 30 Hình 2-9: Phần mềm J-creator 31 Hình 2-10: Giao diện phần mềm SQL Server Management Studio Express 2005 32 Hình 2-11: Cơ sở liệu 33 Hình 2-12: Phần mềm wowza media server 36 Hình 2-13: Hoạt động hệ thống cung cấp dịch vụ IPTV 37 Hình 2-14: Sơ đồ hệ thống cung cấp dịch vụ IPTV 38 Hình 2-15: Thiết bị Google android TV settop box 39 Hình 2-16: Giao diện phần mềm .40 Hình 2-16: Giao diện Video on Demand 41 Hình 2-17: Giao diện thơng tin thuê bao 42 Hình 3-1: Dịch vụ IPTV truy cập từ PC 44 Hình 3-2: Truy cập video từ điện thoại di động kết nối wifi 46 Hình 3-3: Kiểm tra tài khoản trước xem video 47 Hình 3-4: Chọn video để kiểm tra hệ thống tính cước 48 Hình 3-5: Trừ cước chọn xem phim 49 MỞ ĐẦU Trong năm gần đây, dịch vụ truyền hình có bước phát triển mạnh mẽ, với số lượng người xem tăng nhanh đem lại giá trị quan trọng cho đời sống xã hội phát triển Việt Nam giới Cùng với bùng nổ đó, loại hình truyền hình vơ tuyến tương tự (analog) truyền thống dần thay hình thức chất lượng cao nhiều tiện ích : truyền hình cáp (Cable TV), truyền hình kĩ thuật số, truyền hình internet (internet TV) truyền hình giao thức internet (IPTV) … Trong đó, nhờ đảm bảo chất lượng tốt, dễ tiếp cận, dịch vụ đa dạng tận dụng hạ tầng internet phát triển nay, nên IPTV phát triển mạnh trở thành xu hướng hứa hẹn cho tương lai Sau thời gian nghiên cứu làm việc hướng dẫn thày giáo PGS.TS Nguyễn Tiến Dũng, em hoàn thành đồ án tốt nghiệp với đề tài: “Nghiên cứu phát triển hệ thống dịch vụ truyền hình giao thức internet IPTV” Trong đó, em tìm hiểu cơng nghệ, kĩ thuật ứng dụng cho dịch vụ truyền hình giao thức internet (IPTV) triển khai mô hệ thống cung cấp dịch vụ sơ lược Với nỗ lực thân, em đạt kết định, kinh nghiệm thời gian hạn chế, em tránh khỏi thiếu sót Vì vậy, chúng em mong ý kiến góp ý thày bạn bè Em xin gửi lời cảm ơn chân thành đến: Thầy giáo PGS.TS Nguyễn Tiến Dũng Khoa Điện Tử - Viễn Thông, trường ĐH Bách Khoa Hà Nội Cùng gia đình bạn bè Đã hỗ trợ giúp đỡ em trình nghiên cứu Sinh viên thực LÊ DUY Chương TỔNG QUAN 1.1 Tổng quan IPTV 1.1.1 Khái niệm Ở Việt Nam, với phát triển công nghệ mới, dịch vụ truyền hình đời phát triển mạnh mẽ với xu hướng chung nâng cao chất lượng truyền hình, nâng cao tính cá nhân có nội dung đa dạng … Trong đó, dịch vụ truyền hình qua giao thức internet IPTV lên xu hướng mạnh mẽ tương lai Theo ITU (Liên minh viễn thông quốc tế), định nghĩa IPTV dịch vụ đa phương tiện (truyền hình ảnh, tiếng nói, văn bản, liệu… ) phân phối qua mạng dựa giao thức internet (giao thức IP) quản lí để cung cấp mức chất lượng dịch vụ (QoS), bảo mật (Security), tính tương tác, tính tin cậy… theo yêu cầu Tuy vậy, dựa theo yếu tố cá nhân hóa, hướng người dùng IPTV, ta hiểu IPTV nghĩa truyền hình tương tác (Interactive Protocol Television) với dịch vụ nội dung tùy biến, ứng dụng công nghệ để đảm bảo tương tác hai chiều người xem tổng đài nhằm đáp ứng tốt nhu cầu người dùng 10 Hình 3-5: Trừ cước chọn xem phim Như vậy, hệ thống dịch vụ truyền hình mơ đáp ứng hầu hết mục đích đề ra, khả truy cập từ nhiều loại thiết bị khác nhau, đáp ứng chất lượng video cao đáp ứng tính tương tác hai chiều thuê bao hệ thống cung cấp dịch vụ Điều cho thấy tính khả thi kĩ thuật triển khai hệ thống dịch vụ truyền hình giao thức internet Việt Nam Và thực tế dịch vụ truyền hình đại nhiều nhà cung cấp thực theo giải pháp khác đem lại hội lớn cho khán giả truyền hình tiếp cận dịch vụ truyền hình chất lượng cao với nội dung đa dạng 49 KẾT LUẬN Cơng nghệ truyền hình giao thức internet IPTV công nghệ tương đối mới, nghiên cứu ứng dụng rộng rãi giới, đồng thời có bước tiến dài mạnh mẽ công nghệ để đáp ứng nhu cầu ngày nâng cao khán giả truyền hình giới Việt Nam Với ưu điểm tận dụng sở hạ tầng mạng IP tại, có chất lượng truyền hình cao, hỗ trợ nhiều dịch vụ khác nhau, hỗ trợ đa dạng nhiều loại thiết bị truy cập đáp ứng tính tương tác hai chiều với người xem, đặc biệt khả tùy biến dịch vụ theo nhu cầu người dùng, truyền hình IPTV phát triển mạnh mẽ chiếm thị phần lớn, mở thời kì thị hiếu người xem truyền hình Một ưu điểm cốt lõi IPTV so với dịch vụ truyền hình truyền thống loại hình dịch vụ truyền hình khác truyền hình cáp, truyền hình số vệ tinh, mặt đất … khả tương tác hai chiều với khán giả truyền hình, biến trở thành dịch vụ truyền hình tương tác hiệu Mặt khác, với tham gia nghiên cứu ứng dụng nhiều nhà cung cấp khác khắp giới, giải pháp truyền hình IPTV giới thiệu ngày đa dạng Chính thế, tơi chọn luận văn với đề tài “Nghiên cứu phát triển hệ thống dịch vụ truyền hình giao thức internet IPTV” Luận văn hướng việc nghiên cứu kĩ thuật công nghệ tiên tiến triển khai cho hệ thống dịch vụ truyền hình IPTV đồng thời thử nghiệm triển khai mơ hệ thống truyền hình IPTV đơn giản, từ có nhận định tính khả thi mặt kĩ thuật dịch vụ để triển khai công nghệ Việt Nam Mặt khác, liên hệ tham khao giải pháp truyền hình IPTV nhà cung cấp tiên phong Việt Nam để đưa giải pháp triển khai riêng Dựa kết đề tài, ta kết luận cơng nghệ truyền hình giao thức internet hoàn toàn khả thi triển khai Việt Nam mặt công nghệ, sở nguồn nhân lực hạ tầng để triển khai thị trường nhu cầu dịch vụ Mặt khác, nhờ q trình nghiên cứu tìm hiểu cơng nghệ truyền hình IPTV, tơi thu kiến thức quan trọng công nghệ liên quan như: giao thức truyền tin thời gian thực 50 (RTP, RSTP, RTMP, TCP/IP …), kĩ thuật lập trình web, java, flash hệ quản trị sở liệu … Với kiến thức thu với kết triển khai hệ thống mô phỏng, tương lai muốn đề tài phát triển với việc nghiên cứu giải pháp truyền hình IPTV hồn chỉnh, cung cấp dịch vụ cho nhiều thiết bị truy cập khác cải thiện chất lượng truyền dẫn video kết hợp với nhiều dịch vụ gia tăng đa dạng hấp dẫn … đồng thời ứng dụng cụ thể việc hợp tác triển khai hệ thống dịch vụ với nhà cung cấp Việt Nam Một lần nữa, xin chân thành cảm ơn thày giáo PGS.TS Nguyễn Tiến Dũng thày cô Viện Điện Tử Viễn Thông, Trường Đại Học Bách Khoa Hà Nội tận tình giúp đỡ tơi thực đề tài tốt nghiệp Sinh viên thực hiện: Lê Duy 51 TÀI LIỆU THAM KHẢO Tiếng Việt: Bộ Thông Tin Truyền Thông (2011), Xu Hướng Phát Triển Của Cơng Nghệ Truyền Hình & Các Mơ Hình Triển Khai Tại Một Số Thị Trường Trên Thế Giới, Tạp Chí Khoa Học Và Kĩ Thuật Truyền Hình, (2), 1-8 Bộ Thông Tin Truyền Thông (2011), Xu Hướng Phát Triển Của Cơng Nghệ Truyền Hình & Các Mơ Hình Triển Khai Tại Một Số Thị Trường Trên Thế Giới, Tạp Chí Khoa Học Và Kĩ Thuật Truyền Hình, (3), 1-8 Nguyễn Quang Hùng (2011), Thực Trạng Và Xu Hướng Phát Triển Dịch Vụ IPTV Trên Thế Giới, 1-4 Đỗ Hoàng Tiến, Dương Thanh Phương (2004), Giáo Trình Kĩ Thuật Truyền Hình, Nhà Xuất Bản Khoa Học Kĩ Thuật, 1-361 Tiếng Anh: Hasler Hayes (2005), IPTV Release 1.0 Solution High Level Design: Conditional Access (CA) Using Irdeto, Nortel, 1-40 TVSTORM (2007), Proposal for a gap analysis among the existing middleware standards, ITU, 1-6 ZTE (2008), Annex 2.5.1 ZTE IPTV Technical Proposal, ZTE, 1-38 52 PHỤ LỤC Mã nguồn phần mềm máy chủ quản trị thuê bao: Mô đun server: import import import import java.io.*; java.net.*; sql_connection.*; java.sql.*; public class SocketServer extends Thread { public static void main(String[] argv) throws IOException { new SocketServer().start(); } /** The hang-around time */ final static int MINUTES = 1; /** The port number */ public final static int PORT = 64208; /** The server socket */ ServerSocket ss; /** Constructor just creates the ServerSocket */ public SocketServer() throws IOException { ss = new ServerSocket(PORT); } public void run() { while (true) { try { System.out.println("SocketServer waiting for connection"); Socket s = ss.accept(); BufferedReader is = new BufferedReader( new InputStreamReader(s.getInputStream(), "UTF-8")); String recv_message = is.readLine(); String message_type; String user_name = ""; String user_type = ""; String user_ip = ""; String user_money = ""; String video_id = ""; String video_price = ""; String isValid = ""; Number new_user_money = 0; String[] buffer; System.out.println("Receive message is " + recv_message); if (recv_message.equals("CONNECT")) { message_type = recv_message; user_ip = s.getInetAddress().toString().replace("/",""); ResultSet rs_dep = connect_database.executeQuerry("select * from user_table where user_ip='"+user_ip+"'"); try { 53 if (rs_dep != null) while (rs_dep.next()) { user_name = rs_dep.getString(1).toString(); user_type = rs_dep.getString(3).toString(); user_money = rs_dep.getString(4).toString(); System.out.println("Get data from database successfully"); } else { user_name = "Unknown"; user_type = "Unknown"; System.out.println("Get data from database fail"); } PrintWriter pout = new PrintWriter(s.getOutputStream(), true); pout.println("CONNECT_APPROVE\n" + user_name + "\n" + user_ip + "\n" + user_type + "\n" + user_money + "\n"); System.out.println("Message type is " + message_type); System.out.println("Connected IP adress is " + user_ip); } catch (SQLException ex) { System.err.println("Error: " + ex); } } else { buffer = recv_message.split("-"); message_type = buffer[0]; if (message_type.equals("GET VALID VIDEO")) { System.out.println("Message type is " + message_type); video_id = buffer[1]; System.out.println("Video id is " + video_id); ResultSet rs_dep2 = connect_database.executeQuerry("select * from video where video_id='"+video_id+"'"); try { if (rs_dep2 != null) while (rs_dep2.next()) { video_price = rs_dep2.getString(2).toString(); System.out.println("Video price is" + video_price + "\n"); } } catch (SQLException ex) { System.err.println("Error: " + ex); } user_ip = s.getInetAddress().toString().replace("/",""); ResultSet rs_dep = connect_database.executeQuerry("select * from user_table where user_ip='"+user_ip+"'"); try { if (rs_dep != null) while (rs_dep.next()) { user_name = rs_dep.getString(1).toString(); user_type = rs_dep.getString(3).toString(); user_money = rs_dep.getString(4).toString(); 54 System.out.println("Get data from database successfully"); } else { user_name = "Unknown"; user_type = "Unknown"; System.out.println("Get data from database fail"); } System.out.println("Message type is " + message_type); System.out.println("Connected IP adress is " + user_ip); } catch (SQLException ex) { System.err.println("Error: " + ex); } if (Float.parseFloat(user_money) >= Float.parseFloat(video_price)) { new_user_money = Float.parseFloat(user_money) - Float.parseFloat(video_price); connect_database.executeString("update user_table set user_money=convert(money,'"+new_user_money+"') where user_ip='"+user_ip+"'"); isValid = "VALID"; System.out.println("User is valid"); System.out.println("New user money is: " + new_user_money.toString()); } else { // Do nothing isValid = "INVALID"; } PrintWriter pout = new PrintWriter(s.getOutputStream(), true); pout.println("PLAY_APPROVE\n" + user_name + "\n" + user_ip + "\n" + user_type + "\n" + user_money + "\n" + video_price + "\n" + isValid + "\n"); } else { System.out.println("Undefined message"); } } s.close(); } catch (IOException e) { System.err.println("Error: " + e); } } } } 55 Mô đun kết nối sở liệu: import java.sql.*; import java.lang.String; public class connect_database { /** * @param args */ static Connection conn; public static java.sql.Statement stmt; public connect_database() { try { conn = getConnection("iptv","sa","123456"); } catch(SQLException ed) { ed.printStackTrace(); } } public static Connection getConnection(String dsn, String uname, String pass) throws SQLException { String conStr = "jdbc:odbc:"+dsn; try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String dbUrl="jdbc:odbc:Driver={SQL Server};Server=.;Database="+dsn+";UserName=sa;Password=123456"; conn = DriverManager.getConnection(dbUrl); stmt= conn.createStatement(); } catch (ClassNotFoundException e) { throw new SQLException(e.toString()); } return conn; } public static void main(String[] args) { try { conn = getConnection("iptv","sa","123456"); System.out.println("Connect Database Success Mainfunc"); 56 } catch(SQLException ed) { ed.printStackTrace(); } } public static ResultSet executeQuerry(String sqlString) { try { conn = getConnection("iptv","sa","123456"); stmt= conn.createStatement(); ResultSet rs= stmt.executeQuery(sqlString); System.out.println("Connect Database Success"); return rs; } catch(SQLException ed) { ed.printStackTrace(); System.out.println("Connect Database Fail"); return(null); } } public static void executeString(String sqlString) { try { conn = getConnection("iptv","sa","123456"); stmt= conn.createStatement(); stmt.executeQuery(sqlString); System.out.println("Write database success"); System.out.println(sqlString); } catch(SQLException ed) { ed.printStackTrace(); System.out.println("Write Database Fail"); } } } 57 Mã nguồn phần mềm IPTV Player: Mô đun kết nối mạng package { import import import import flash.display.Sprite; flash.errors.*; flash.events.*; flash.net.Socket; public class /*CustomSocket*/Mysocket extends Socket { private var response:String; public var user_name:String; public var user_ip:String; public var user_type:String; public var user_money:String; public var send_message_type:String = "CONNECT"; public var recv_message_type:String; public var video_price:String; public var isValid_video:String; private var x = 0; public function Mysocket(host:String = null, port:uint = 0, message_send:String = null) { super(); configureListeners(); if (host && port) { super.connect(host, port); } send_message_type = message_send; } private function configureListeners():void { addEventListener(Event.CLOSE, closeHandler); addEventListener(Event.CONNECT, connectHandler); addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler); } private function divide_string():void { var loop:uint = 0; var i:uint = 0; var count:uint = 0; var pos:uint = 0; for (loop = 0; loop < response.length; loop++) { if (response.charAt(loop) == "\n") { trace(loop); if (count == 0) { recv_message_type = response.substring(0, loop); trace("Message tye is:" + recv_message_type + "\n"); pos = loop; 58 count ++; } else if (count == 1) { if ((recv_message_type == "CONNECT_APPROVE") || (recv_message_type == "PLAY_APPROVE")) { user_name = response.substring(pos + 1, loop); } pos = loop; count ++; //trace("User name is: " + user_name); } else if (count == 2) { if ((recv_message_type == "CONNECT_APPROVE") || (recv_message_type == "PLAY_APPROVE")) { user_ip = response.substring(pos + 1, loop); } pos = loop; count ++; //trace("User ip is: " + user_ip); } else if (count == 3) { if ((recv_message_type == "CONNECT_APPROVE") || (recv_message_type == "PLAY_APPROVE")) { user_type = response.substring(pos + 1, loop); } pos = loop; count ++; //trace("User type is: " + user_type); } else if (count == 4) { if ((recv_message_type == "CONNECT_APPROVE") || (recv_message_type == "PLAY_APPROVE")) { user_money = response.substring(pos + 1, loop); } pos = loop; count ++; } else if (count == 5) { if (recv_message_type == "PLAY_APPROVE") { video_price = response.substring(pos + 1, loop); trace("Video price is " + video_price + "\n") } pos = loop; count ++; } else if (count == 6) { if (recv_message_type == "PLAY_APPROVE") { isValid_video = response.substring(pos + 1, loop); trace("Video price is " + isValid_video + "\n") } pos = loop; count ++; } } } } private function writeln(str:String):void { str += "\n"; try { 59 writeUTFBytes(str); } catch(e:IOError) { trace(e); } } private function sendRequest():void { trace("sendRequest"); response = ""; writeln(send_message_type); flush(); } private function readResponse():void { var str:String = readUTFBytes(bytesAvailable); response += str; } private function closeHandler(event:Event):void { trace("closeHandler: " + event); //trace(response.toString()); } private function connectHandler(event:Event):void { trace("connectHandler: " + event); sendRequest(); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } private function securityErrorHandler(event:SecurityErrorEvent):void { trace("securityErrorHandler: " + event); } private function socketDataHandler(event:ProgressEvent):void { trace("socketDataHandler: " + event); readResponse(); divide_string(); } } } 60 Mô đun tạo luồng video // create the nsPlay NetStream object function createPlayStream() { nsPlay = new NetStream(nc); nsPlay.addEventListener(NetStatusEvent.NET_STATUS, nsOnStatus); var nsPlayClientObj:Object = new Object(); nsPlay.client = nsPlayClientObj; nsPlayClientObj.onMetaData = function(infoObject:Object) { trace("onMetaData"); // print debug information about the metaData for (var propName:String in infoObject) { trace(" "+propName + " = " + infoObject[propName]); } // grab the movies duration from the metadata if (duration == 0) { duration = infoObject.duration; progressTimer = setInterval(updateProgress, 250); } }; // print debug information when we encounter a cuePoint nsPlayClientObj.onCuePoint = function(infoObject) { trace("onCuePoint: "+infoObject.name+" ("+infoObject.type+")"); var param; for(param in infoObject.parameters) { trace(" param: "+param+"="+infoObject.parameters[param]); } }; 61 // print debug information when we play status changes nsPlayClientObj.onPlayStatus = function(infoObject:Object) { trace("onPlayStatus"); for (var prop in infoObject) { trace("\t"+prop+":\t"+infoObject[prop]); } }; // set the buffer time and attach the video and audio nsPlay.bufferTime = 3; videoObj.attachNetStream(nsPlay); // start playback isProgressUpdate = false; isPlaying = true; //nsPlay.play(connect.streamStr.text); //removed 30/1 nsPlay.play(movieName); //modified 30/1 } 62 Mô đun chơi video // play video (no fast play) function doPlay() { currFastDir = 0; currFastIndex = 0; trace("doPlay"); var timecode:Number = nsPlay.time; isProgressUpdate = false; if (!isPlaying) nsPlay.resume(); nsPlay.seek(timecode); isPlaying = true; } // event for clicking the play button // if we are paused or in fast play mode just play the video // else pause the video function doPlayToggle(event:MouseEvent) { if (!isPlaying) doPlay(); else { isProgressUpdate = false; isPlaying = false; nsPlay.pause(); } } // rewind to the beginning of the movie and start playing function doRewind(event:MouseEvent) { isProgressUpdate = false; nsPlay.seek(0); } 63 ... đề tài: ? ?Nghiên cứu phát triển hệ thống dịch vụ truyền hình giao thức internet IPTV? ?? Trong đó, em tìm hiểu cơng nghệ, kĩ thuật ứng dụng cho dịch vụ truyền hình giao thức internet (IPTV) triển khai... ấy, đời dịch vụ công nghệ động lực phát triển truyền hình giao thức internet IPTV 20 Chương THIẾT KẾ HỆ THỐNG CUNG CẤP DỊCH VỤ IPTV 2.1 Sơ đồ kiến trúc hệ thống cung cấp dịch vụ IPTV Hình mơ... giao thức internet IPTV? ?? Luận văn hướng việc nghiên cứu kĩ thuật công nghệ tiên tiến triển khai cho hệ thống dịch vụ truyền hình IPTV đồng thời thử nghiệm triển khai mô hệ thống truyền hình IPTV