Xây dựng ứng dụng streaming video từ server

60 466 1
Xây dựng ứng dụng streaming video từ server

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

LỜI CAM ĐOAN Tôi xin cam đoan số liệu kết nghiên cứu đồ án trung thực chưa sử dụng để bảo vệ học vị Mọi tham khảo cho việc thực đồ án, thông tin trích dẫn đồ án ghi rõ mục tài liệu tham khảo Đồ án tốt nghiệp thành từ nghiên cứu hoàn toàn thực tế sở số liệu thực tế thực hướng dẫn giáo viên hướng dẫn Sinh viên thực Triệu Thành Duy LỜI CẢM ƠN Trong năm gần với phát triển vượt trội khoa học kỹ thuật đặc biệt công nghệ thông tin, với ứng dụng công nghệ thông tin vào lĩnh vực góp phần to lớn cho nghiệp phát triển người Một lĩnh vực áp dụng máy thiết bị công nghệ vào giải toán thực tế Vì công nghệ thông tin nói chung thiết bị công nghệ nói riêng đóng góp nhiều lợi ích để nâng cao đời sống cho người Trong đợt đồ án tốt nghiệp em chọn đề tài “Xây dựng ứng dụng Streaming video từ Server” Chương trình sử dụng ngôn ngữ lập trình hướng đối tượng Java để cài đặt Trong trình thực đồ án tốt nghiệp em xin cám ơn cô giáo Nguyễn Lan Oanh định hướng hướng dẫn cho em hoàn thành đồ án tốt nghiệp Em xin gửi tới cô lời cảm ơn chân thành Mặc dù cố gắng trình nghiên cứu làm đề tài nhiều hạn chế thời gian trình độ nên đồ án em không tránh khỏi nhiều thiếu sót, nhiều vấn đề chưa giải hoàn chỉnh Vì vậy, em mong nhận ý kiến đóng góp thầy cô bạn để hoàn thiện phát triển đề tài Em xin chân thành cảm ơn! LỜI NÓI ĐẦU Tổng quan vấn đề nghiên cứu: - Đơn vị thực tại: Trường Đại học Công nghệ thông tin Truyền thông - Bối cảnh chung vấn đề nghiên cứu: Xây dựng ứng dụng cho hệ điều hành Android - Mô tả vấn đề nghiên cứu: Xây dựng ứng dụng Streaming video cho Android, ứng dụng đáp ứng yêu cầu nhỏ gọn, dễ sử dụng, giao diện đơn giản, thân thiện Có thể tải nghe audio video Lý chọn đề tài: - Lý chọn đề tài: Xây dựng ứng dụng phát video (Streaming Video) mà tải Xây dựng ứng dụng giúp việc tìm kiếm, lưu trữ nội dung video đơn giản hơn, số tính hữu ích khác - Tên đề tài: Xây dựng ứng dụng Streaming Video từ Server Mục tiêu nghiên cứu: - Nghiên cứu lý thuyết lập trình Java - Nghiên cứu lý thuyết hệ điều hành Android - Xây dựng ứng dụng Streaming Video từ Server Android MỤC LỤC LỜI CẢM ƠN LỜI NÓI ĐẦU .3 Tổng quan vấn đề nghiên cứu: Lý chọn đề tài: Mục tiêu nghiên cứu: .3 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT .7 1.1 Giới thiệu Streaming Video .7 1.1.1 Streaming gì? 1.1.2 Live Streaming gì? 1.1.3 Streaming Video mang ý nghĩa gì? 1.1.4 Streaming Video mang tác dụng gì? 1.1.5 Streaming Video hoạt động nào? 1.1.6 Streaming với băng thông lưu trữ 1.2 Giới thiệu Jsoup Library .9 1.3 Tổng quan hệ điều hành Android 11 1.3.1 Khái niệm .11 1.3.2 Lịch sử phát triển 11 1.3.3 Đặc điểm 13 1.4 Kiến trúc thành phần Android 16 1.4.1 Kiến trúc tảng Android 16 1.4.2 Các thành phần Android 20 1.4.3 Hoạt động (Activity) .20 1.4.4 Service 23 1.4.5 Bộ nhận quảng bá (Broadcast receivers) 24 1.4.6 Content Provider 25 1.4.7 Các thành phần kích hoạt (các Intent) .26 1.4.8 View .28 1.4.9 Tập tin khai báo (manifest) .28 1.5 Công cụ hỗ trợ lập trình Android 29 1.5.1 Tổng quan .29 1.5.2 Tạo máy ảo android 30 CHƯƠNG 2: KHẢO SÁT, PHÂN TÍCH THIẾT KẾ HỆ THỐNG 32 2.1 Khảo sát nhu cầu 32 2.1.1 Thống kê số lượng người sử dụng Smartphone 32 2.1.2 Nhu cầu sử dụng Smartphone theo lĩnh vực 33 2.2 Phân tích yêu cầu chương trình 33 2.2.1 Đặt vấn đề: 33 2.2.2 Mô tả chức chính: 35 2.2.3 Các yêu cầu toán 35 2.2.4 Các yêu cầu chung ứng dụng 35 2.3 Xác định tác nhân chương trình 35 2.4 Xác định Use Case chương trình .36 2.5 Đặc tả chi tiết UC 37 2.5.1 UC khởi tạo ứng dụng 37 2.5.2 UC xem video .39 2.5.3 Use Case nghe audio .41 2.5.4 Use Case tìm kiếm video 43 2.5.5 UC gửi thông tin phản hồi .45 2.6 Biểu đồ Packages Classes 46 CHƯƠNG 3: XÂY DỰNG VÀ CÀI ĐẶT CHƯƠNG TRÌNH 47 3.1 Yêu cầu xây dựng phần mềm 47 3.2 Xây dựng chương trình 47 3.3 Một số giao diện chương trình .48 3.3.1 Giao diện hình xem Video offline 48 3.3.2 Giao diện hình chuyển sang chết độ Online .50 3.3.3 Giao diện hình tìm kiếm 51 3.3.4 Giao diện hình danh sách videos theo từ khóa 52 3.3.5 Giao diện hình thông tin chi tiết video 54 3.3.6 Giao diện hình phát video 55 3.3.7 Giao diện hình phát Audio video .56 3.3.8 Giao diện hình tải video 57 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 58 Kết luận 58 Hướng phát triển .58 DANH MỤC TÀI LIỆU THAM KHẢO 59 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN .60 CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu Streaming Video 1.1.1 Streaming gì? Streaming hay streaming media trình mà định dạng truyền thông (như âm thanh, hình ảnh) gửi tới người dùng hiển thị trình tải 1.1.2 Live Streaming gì? Đây thuật ngữ nói việc nội dung, liệu media thu lại, xử lý truyền tải trực tiếp qua mạng Internet tới người nhận thời điểm Dễ hình dung nhất, tưởng tượng tới trận bóng đá mà thường xuyên xem trực tiếp Youtube Đó live stream Vì kỹ thuật thực theo thời gian thực, nên tùy vào trường hợp, hệ thống server mà nhận liệu, video chạy thiết bị người dùng có độ trễ định so với tình thực tế xảy 1.1.3 Streaming Video mang ý nghĩa gì? Theo định nghĩa cách xác nhất, video streaming "dòng chảy" video Các thông tin, liệu đoạn video luân chuyển liên tục, đặn từ “nguồn” gửi tới “đích” thông qua mạng Internet 1.1.4 Streaming Video mang tác dụng gì? Công nghệ streaming trở nên ngày quan trọng với phát triển Internet, đa số người dùng đủ quyền hạn để tải nhanh tập tin media có dung lượng lớn Việc vừa tải vừa xem giúp cho người dùng tiết kiệm nhiều thời gian so với trước (phải tải toàn xem được) Điểm bật rõ ràng Streaming Video việc người dùng xem đoạn video clip, chí phim mà không cần phải download máy 1.1.5 Streaming Video hoạt động nào? Thực chất, Streaming Video việc chia nhỏ file media thành frame, sau gửi frame vào nhớ đệm máy tính hiển thị nội dung fame Trong người dùng sử dụng liệu tập tin frame tập tin khác tiếp tục tải Hình 1.0 Miêu tả hoạt động Streaming Video Ngày nay, video, mà tập tin âm thanh, trò chơi điện tử streaming Có thể nói, Streaming trở thành xu hướng phát triển nghành giải trí truyền thông mạng Internet 1.1.6 Streaming với băng thông lưu trữ Băng thông rộng tốc độ từ 2,5 Mbit /s trở lên khuyến khích cho việc streaming phim điện ảnh, ví dụ AppleTV, GoogleTV SonyTV Blu-ray Disc Player, vào khoảng 10 Mbit/s cho nội dung độ nét cao HD.Kết nối Unicast đòi hỏi nhiều kết nối từ streaming server, truyền nội dung Kích thước lưu trữ Streaming media tính băng thông để Streaming chiều dài tập tin Media, cách sử dụng công thức sau (cho người dùng tập tin): Kích thước lưu trữ (MB) = chiều dài (tính giây) × tỷ lệ bit (bit / s) / (8 × 1024 × 1024) Ví dụ thực tế: Một video mã hóa 300 kbit /s (đây băng thông video điển hình năm 2005 thường mã hóa 320 x 240 điểm ảnh) là: (3.600 s × 300.000 bit / s) / (8 × 1024 × 1024) yêu cầu dung lượng lưu trữ khoảng 128 MB Nếu tập tin lưu trữ máy chủ cho việc streaming theo yêu cầu xem 1.000 người lúc cách sử dụng giao thức Unicast, yêu cầu là: 300 kbit/s × 1000 = 300.000 kbit/s = 300 Mbit/s băng thông Điều tương đương với khoảng 135 GB cho Sử dụng giao thức Multicast server gửi luồng đơn(thông thường) cho tất người dùng Do đó, việc Stream sử dụng 300 kbit/s băng thông Việc tính toán để live streaming tương tự Giả định: tốc độ mã hóa 500 kbit/s Nếu chương trình kéo dài với 3.000 người xem, sau tính toán là: Số MBs chuyển = tốc độ mã hóa(bit/s) x số giây x số lượng người xem / (8 * 1024 * 1024) Số MBs chuyển = 500 x 1024 (bit/s) × × 3600 (= giờ) × 3.000 (nbr người xem) / (8 * 1024 * 1024) = 1.977.539 MB Âm stream nén cách sử dụng định dạng âm MP3, Vorbis AAC.Hình ảnh video stream nén cách sử dụng codec video H.264 VP8 Mã hóa âm video stream nhúng gói bitstream FLV, WebM, ASF ISMA Bitstream phân phối từ streaming server tới streaming client cách sử dụng giao thức truyền tải, ví dụ MMS RTP.Các streaming client tương tác với streaming server cách sử dụng giao thức kiểm soát, chẳng hạn MMS RTSP 1.2 Giới thiệu Jsoup Library Jsoup thư viện java để giúp trích xuất thao tác HMTL file Sử dụng thư viện phân tích trang HTML vào Android.Có vài tình muôn phân tích trích xuất vài thông tin từ trang HTML thay thể toàn Trong trường hợp sử dụng Jsoup, với API mạnh mẽ dễ dàng cho việc sử dụng tích hợp vào project Android Trong viết thảo luận làm setup sử dụng Jsoup , để trích xuất vài thông tin Giới thiệu Jsoup: Như nói Jsoup thư viện Java để cung câp API cho việc trích xuất thao tác file HTML Có vài phương thức cho việc đọc phân tích trang HTML , trường hợp chúng ta, muốn lấy vài thông tin từ trang HTML server xa phải cung cấp URL Nếu muốn phân tích trang DOM, có: Document doc = Jsoup.connect(URL).get(); doc biến thuộc class Document để lưu trữ tài liệu lấy Bây có Document tự trích xuất thông tin Chúng ta lấy title thông tin khác sử dụng Tag HTML Cho ví dụ, muốn lấy tất tag có tên meta : Elements metaElems = doc.select("meta"); Phương thức select sử dụng muốn lấy tag sử dụng truy vấn CSS Cho ví dụ, muốn lấy giá trị thuộc tính từ tag : String name = metaElem.attr("name"); “name” tên thuộc tính Hơn nữa, Chúng ta lựa chọn tất thành phần trang HTML có giá trị CSS xác định Cho ví dụ, website có vài thành phần có class CSS tên “topic" , chúng tao có Elements topicList = doc.select("h2.topic"); Thiết lập project tích hợp Jsoup: Đầu tiên cần làm tạo project Android có chứa Activity đơn giản Tôi giả sử bạn sử dụng Android Studio phát triển ứng dụng Android Khi bạn tạo project android, bạn phải add Jsoup dependency libary Vậy mở file build.gradle add thêm dependency libary bên compile 'org.jsoup:jsoup:1.7.3' Vậy có : Default dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:19.+' compile 'org.jsoup:jsoup:1.7.3' } 10 2.6 Biểu đồ Packages Classes Hình 2.14 Biểu dồ Package ứng dụng Hình 2.15 Biểu đồ lớp ứng dụng 46 CHƯƠNG 3: XÂY DỰNG VÀ CÀI ĐẶT CHƯƠNG TRÌNH 3.1 Yêu cầu xây dựng phần mềm Để xây dựng lập trình phần mềm yêu cầu tối thiểu cần có: - Bộ JDK( Java SE Development Kit –JDK ) : môi trường phát triển ứng dựng ngôn ngữ Java - Công cụ lập trình Eclipse Android Studio xem công cụ hỗ trợ tốt việc lập trình ứng dụng Android Ngoài sử dụng Android tools - cho lập trình android khác - Bộ Android SDK (Software Development Kit) chứa phiên Android, hàm API cần thiết công cụ hỗ trợ lập trình khác JDK (Java Development Kit) dùng để tạo môi trường thực thi máy ảo cho hệ điều hành mà sử dụng Phần mềm sau lập trình xong, để chạy chương trình ta cần có điện thoại smarth phone hệ điều hành Android, có thẻ chạy máy ảo 3.2 Xây dựng chương trình Chương trình bao gồm: - Phần giao diện: sử dụng xml để xây dựng - Phần source code xử lý: viết ngôn ngữ Java đóng gọn vào cáo package:.adapter,.database, utlis, myapp - Dữ liệu (database): nguồn phim lấy trang Youtube thông qua tài việc bóc tách mã nguồn tệp tin HTML 47 3.3 Một số giao diện chương trình 3.3.1 Giao diện hình xem Video offline Hình 3.1 Giao diện xem video offline 48 Hình 3.2 Giao diện xem video offline Mô tả chức xem Video Offline - Người sử dụng vào ứng dụng, Ứng dụng kiểm tra kết nội mạng Nếu mạng chuyển sang chức xem video lưu máy - Người sử dụng thực thao tác chạm vào Floating Action Button có hình mũi tên trỏ lên để sang chế độ Online Khi người dùng kích vào nút ứng dụng kiểm tra lại tình trạng mạng Nếu có mạng sang chế độ Online, ngược lại thông báo cho người dùng 49 3.3.2 Giao diện hình chuyển sang chết độ Online Hình 3.3 Giao diện chế độ Online Mô tả chức xem Video Online: - Người sử dụng bấm vào biểu tượng hình kính lúp để tìm kiếm Video - Người sử dụng bấm vào nút hình mũi tên trỏ xuống để quay chế độ Offline để xem video tải máy 50 3.3.3 Giao diện hình tìm kiếm Hình 3.4 Giao diện ứng dụng - Người dùng nhập từ khóa tìm kiếm vào ô tìm kiếm tích biểu tượng tìm kiếm bàn phím - Giao diện chuyển sang hình danh sách videos 51 3.3.4 Giao diện hình danh sách video theo từ khóa Hình 3.5 Giao diện chức hiển thị danh sách video theo từ khóa 52 Hình 3.6 Giao diện danh sách video theo từ khóa - Danh sách video hiển thị - Người dùng lựa chọn video muốn xem tích vào danh sách - Màn hình chuyển sang hình chi tiết video 53 3.3.5 Giao diện hình thông tin chi tiết video Hình 3.7 Giao diện hình chi tiết video - Màn hình chi tiết video - Trên toolbar người dùng chọn độ phân giải video - Người dùng tích vào biểu tượng tai nghe để chọn tùy chọn phát audio video - Người dùng chọn biểu tượng tải xuống để tải xuống video - Người dùng chọn nút play video để phát video 54 3.3.6 Giao diện hình phát video Hình 3.8 Giao diện hình phát video Hình 3.9 Giao diện hình phát video - Màn hình phát video - Người sử dụng tua nhanh video - Người sử dụng chọn nút pause để tạm dừng video - Người sử dụng sử dụng nút xoay để xoay chế độ dọc ngang 55 3.3.7 Giao diện hình phát Audio video Hình 3.10 Giao diện phát audio video - Giao diện nghe audio sử dụng Notification Widget android, thành phần ImageView, TextView để render - Người sử dụng bấm nút X để tắt trình phát audio - Người sử dụng bấm nút || để tạm dừng phát audio 56 3.3.8 Giao diện hình tải video Hình 3.11 Giao diện download video - Giao diện Download sử dụng Notification Widget android, thành phần ImageView, TextView để render - Người sử dụng vuốt sang cạnh hình để hủy bỏ trình tải 57 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Đề tài thực việc xem video, download, chạy video dạng ẩn Ngoài ra, chương trình thông báo công báo thông tin qua giao diện chương trình, qua Widget, qua Notifications Hướng phát triển - Phát triển ứng dụng Streaming Video từ nhiều nguồn khác Người dùng tự chủ động chọn nguồn phát - Trong thời gian tiếp theo, em cố gắng phát triển chức tìm kiếm channel, upload user, danh sách yêu thích v v, cải thiện chức hoạt động hiệu Ngoài nâng cấp mặt giao diện dễ sử dụng hơn, có tính thẩm mỹ 58 DANH MỤC TÀI LIỆU THAM KHẢO [1] Đặng Văn Đức, Phân tích thiết kế hướng đối tượng với UML, NXB Giáo dục, 2002 [2] Ian Lloyd, The Ultimate HTML Reference, SitePoint, 2008 [3] Marko Gargenta, Learning Android, O'Reilly Media, 2011 [4] Jonathan Simon, Head First Android Development, O’Reilly Media, 2011 [5] Jon Westfall Rocco Augusto Grant Allen, Beginning Android Web Apps Development, Apress, 2012 [6] Mark L Murphy, Beginning Android, Apress , 2010 59 NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 60 ... tài: Xây dựng ứng dụng Streaming Video từ Server Mục tiêu nghiên cứu: - Nghiên cứu lý thuyết lập trình Java - Nghiên cứu lý thuyết hệ điều hành Android - Xây dựng ứng dụng Streaming Video từ Server. .. vấn đề nghiên cứu: Xây dựng ứng dụng cho hệ điều hành Android - Mô tả vấn đề nghiên cứu: Xây dựng ứng dụng Streaming video cho Android, ứng dụng đáp ứng yêu cầu nhỏ gọn, dễ sử dụng, giao diện đơn... Có thể tải nghe audio video Lý chọn đề tài: - Lý chọn đề tài: Xây dựng ứng dụng phát video (Streaming Video) mà tải Xây dựng ứng dụng giúp việc tìm kiếm, lưu trữ nội dung video đơn giản hơn, số

Ngày đăng: 23/04/2017, 16:24

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan