Khóa luận Xây dựng hệ thống xem video trực tuyến trên hệ điều hành Android

ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
Bùi Hoàng Hưng  
XÂY DNG HTHNG XEM VIDEO TRC  
TUYN TRÊN HỆ ĐIỀU HÀNH ANDROID  
KHOÁ LUN TT NGHIỆP ĐẠI HC HCHÍNH QUY  
Ngành: Công nghthông tin  
NI - 2010  
1
ĐẠI HC QUC GIA HÀ NI  
TRƯỜNG ĐẠI HC CÔNG NGHỆ  
i Hoàng Hưng  
XÂY DNG HTHNG XEM VIDEO TRC  
TUYN TRÊN HỆ ĐIỀU HÀNH ANDROID  
KHOÁ LUN TT NGHIỆP ĐẠI HC HCHÍNH QUY  
Ngành: Công nghthông tin  
Cán bộ hưng dn: TS. Trương Anh Hoàng  
NI - 2010  
LI CẢM ƠN  
Trước tiên, em xin gửi lời cảm ơn sâu sắc tới thầy Trương Anh Hoàng (bộ môn  
Công nghệ phần mềm, trường Đại học Công Nghệ, Đại học Quốc Gia Hà Nội). Thầy đã  
tận tình chỉ dẫn cho em từ những bước đi đầu tiên đến khi hoàn thành đề tài khóa luận  
này. Thầy luôn giúp em giải quyết vấn đề trong những lúc khó khăn. Ở thầy em học được  
không chỉ là sự hiểu biết mà còn là cách làm việc và lẽ sống.  
Em xin cảm ơn thầy Vũ Quang Dũng (bộ môn Công nghệ phần mềm, trường Đại  
học Công Nghệ, Đại học Quốc Gia Hà Nội), thầy đã góp ý cho em những ý kiến quý báu  
để em hoàn thiện luận văn của mình.  
Em xin gửi lời cảm ơn tới tất cả các thầy, cô giáo trong khoa Công nghthông tin –  
trường Đại học Công Nghệ Đại học Quốc Gia Hà Nội đã nhiệt tình giảng dạy cho chúng  
em những tri thức của kỷ nguyên mới – kỷ nguyên công nghệ và truyền thông.  
Cảm ơn những người bạn của tôi, những người đã giúp đỡ tôi rất nhiều trong học  
tập, trong cuộc sống và hoàn thành khóa luận này.  
Cuối cùng, con xin gửi lời cảm ơn đến bố, mẹ và gia đình. Bố mẹ luôn là chỗ dựa  
tinh thần vững chắc cho con.  
Hà Nội, ngày 25 tháng 5 năm 2010  
Bùi Hoàng Hưng  
3
Tóm tắt nội dung  
Ngày nay khi thiết bị cầm tay trở lên phổ biến, cũng như sự phát triển lớn mạnh  
của các hệ thống viễn thông làm cho các dịch vụ phục vụ nhu cầu con người trên thiết bị  
cm tay ngày càng phổ dụng. Đặc biệt là dịch vụ xem video trực tuyến trên thiết bị cầm  
tay, nó sẽ là dịch vụ rất phát triển khi mà công nghệ mạng 3G đang từng bước được triển  
khai đem lại cho người dùng tốc độ truyền tải dữ liệu rất nhanh. Cùng với đó là sự ra đời  
của hệ điều hành mã nguồn mở Android có khả năng tùy biến cao, có thể coi đây là một  
bước tiến trong lĩnh vực công nghệ. Vậy việc xây dựng một hệ thống cho phép xem video  
trực tuyến trên thiết bị cài đặt hệ điều hành mã nguồn mở Android cùng với nền tảng công  
nghtruyền thông 3G có lẽ là một bài toán quan trọng cần được nghiên cứu và phát triển.  
Cần phải nghiên cứu những gì, phát triển những gì? Chúng ta sẽ cùng đi sâu nghiên cứu  
và thực hiện một hệ thống cho phép xem video trực tuyến trên thiết bị dùng hệ điều hành  
mã nguồn mở Android.  
4
Chương 1. Đặt vấn đề...................................................................11  
1.1. Mạng 3G ......................................................................................... 11  
1.1.1.  
1.1.2.  
1.1.3.  
1.1.4.  
1.1.5.  
1.1.6.  
1.1.7.  
Giới thiệu....................................................................................................................... 11  
Công nghệ 3G................................................................................................................ 11  
Mạng 3G tại Việt Nam.................................................................................................. 12  
Hệ điều hành mã nguồn mở Android........................................................................... 13  
Hệ điều hành Android................................................................................................... 13  
Những đặc tính của hệ điều hành Android .................................................................. 13  
Những đánh giá về sự phát triển của Android tại Việt Nam ....................................... 15  
1.2. Hệ thống thông tin trực tuyến trên điện thoại di động ................ 16  
1.3. Bài toán........................................................................................... 17  
1.3.1.  
Đặt bài toán................................................................................................................... 17  
Các hệ thống tương t................................................................................................... 17  
1.3.2.  
Chương 2. Một số kiến thức cơ s...............................................19  
2.1. Một số phương pháp xem video nói chung................................... 19  
2.1.1.  
2.1.2.  
2.1.3.  
2.1.4.  
2.1.5.  
Giao thức hỗ trợ Streaming video ................................................................................ 20  
Định dạng ...................................................................................................................... 21  
Server ............................................................................................................................ 21  
Client ............................................................................................................................. 21  
Servlet............................................................................................................................ 22  
2.2. Hệ điều hành Android.................................................................... 22  
2.2.1.  
2.2.2.  
Kiến trúc của hệ điều hành mã nguồn mở Android..................................................... 22  
API của Android ........................................................................................................... 24  
Activity................................................................................................................... 24  
HTTP..................................................................................................................... 26  
Intent ..................................................................................................................... 26  
View ....................................................................................................................... 27  
MediaPlayer .......................................................................................................... 30  
Widget.................................................................................................................... 32  
2.2.2.1.  
2.2.2.2.  
2.2.2.3.  
2.2.2.4.  
2.2.2.5.  
2.2.2.6.  
5
Chương 3. Phân tích thiết kế bài toán.........................................39  
3.2. Phân tích yêu cầu ........................................................................... 39  
3.2.1.  
3.2.2.  
Yêu cầu người sử dụng ................................................................................................. 39  
Yêu cầu hệ thống........................................................................................................... 39  
3.4. Giải pháp ........................................................................................ 40  
3.4.1.  
3.4.2.  
Xử lý trên thiết b.......................................................................................................... 40  
Xử lý trên Server........................................................................................................... 40  
3.5. Phân tích......................................................................................... 40  
3.5.1.  
3.5.2.  
3.5.3.  
Các chức năng của hệ thống ......................................................................................... 40  
Biểu đồ ca sử dụng ........................................................................................................ 41  
Luồng sự kiện................................................................................................................ 41  
Tìm kiếm................................................................................................................ 41  
Cập nhập ............................................................................................................... 42  
Streaming .............................................................................................................. 43  
Thiết kế lớp ................................................................................................................... 43  
Hệ thống trên thiết bị cầm tay .............................................................................. 43  
Hệ thống Servlet .................................................................................................... 46  
Biểu đồ tuần t.............................................................................................................. 46  
Tìm kiếm................................................................................................................ 47  
Cập nhập ............................................................................................................... 47  
Streaming .............................................................................................................. 48  
Biểu đồ trạng thái hoạt động ........................................................................................ 49  
Biểu đồ hoạt động chức năng Tìm kiếm ............................................................... 49  
Biểu đồ hoạt động chức năng Cập nhập ............................................................... 49  
Biểu đồ hoạt động chức năng Streamng ............................................................... 50  
Cơ sở dữ liệu ................................................................................................................. 52  
Thiết kế giao diện.......................................................................................................... 52  
3.5.3.1.  
3.5.3.2.  
3.5.3.3.  
3.5.4.  
3.5.4.1.  
3.5.4.2.  
3.5.5.  
3.5.5.1.  
3.5.5.2.  
3.5.5.3.  
3.5.6.  
3.5.6.1.  
3.5.6.2.  
3.5.6.3.  
3.5.7.  
3.5.8.  
Chương 4. Cài đặt chạy th.........................................................56  
4.1. Tìm kiếm......................................................................................... 56  
4.2. Cập nhập......................................................................................... 56  
4.3. Streaming........................................................................................ 57  
6
4.4. Hướng dẫn cài đặt.......................................................................... 59  
4.5. Một số vấn đề.................................................................................. 59  
Chương 5. Kết luận ......................................................................60  
Tài liệu tham khảo........................................................................61  
7
DANH MC HÌNH NH  
Hình 1: Hệ điều hành Android.....................................................................................14  
Hình 2: Tng ng dng................................................................................................22  
Hình 3: Thư vin ca Android. ....................................................................................24  
Hình 4: Nhân Linux. ....................................................................................................24  
Hình 5: Vòng đời ca mt Activity. ..............................................................................25  
Hình 6: Thực đơn.........................................................................................................29  
Hình 7: Bmt. ............................................................................................................29  
Hình 8: Lược đồ trng thái...........................................................................................30  
Hình 9: Cu trúc tệp XML định nghĩa các giá trị. ......................................................33  
Hình 10: Cu trúc tp XML..........................................................................................33  
Hình 11: XML hin thmt TextView. .........................................................................34  
Hình 12: Hin thmt TextView trên thiết b. .............................................................34  
Hình 13: Tp XML cu trúc Button. ............................................................................35  
Hình 14: Tp java kết ni và thực thi hành động nháy chut. ....................................35  
Hình 15: Button............................................................................................................36  
Hình 16: XML ImageButton. .......................................................................................36  
Hình 17: Tp java thc thi............................................................................................36  
Hình 18: ImageButton trên thiết b. .............................................................................37  
Hình 19: Danh sách trên thiết b..................................................................................37  
Hình 20: Biểu đồ ca sdng........................................................................................41  
Hình 21: Lp trên thiết bcm tay................................................................................44  
Hình 22: Biểu đồ tun tchức năng Tìm kiếm............................................................47  
Hình 23: Biểu đồ tun tca chức năng tìm kiếm. .....................................................48  
Hình 24: Biểu đồ tun tchức năng Streaming. .........................................................48  
Hình 25: Biểu đồ hoạt động chức năng Tìm kiếm .......................................................49  
Hình 26: Biểu đồ hoạt động chức năng cập nhp........................................................50  
Hình 27: Biểu đồ hoạt động ca chức năng Streaming ...............................................51  
Hình 28: Bng cơ sdliu.........................................................................................52  
Hình 29: Màn hình chính.............................................................................................53  
Hình 30: Màn hình la chn.(màn hình 1)..................................................................54  
Hình 31: Màn hình Help. .............................................................................................54  
Hình 32: Màn hình chy video.....................................................................................55  
8
Hình 33: Li chưa nhp giá tr.....................................................................................56  
9
DANH MC TVIT TT  
Gii thích  
Ký hiu  
Tiếng Anh  
Tiếng Vit  
Enhanced Data Rates for GSM  
Evolution  
Sphát triển tăng tốc độ truyn  
cho mng GSM  
EDGE  
Universal Mobile  
Telecomunications System  
Hthng viễn thông di động  
toàn cu  
UMTS  
API  
Application Programming Interface Giao din lp trình ng dng  
Mt công nghtrong hthng  
Code Division Multiple Access  
CDMA  
GPRS  
GSM  
thông tin di động  
General Packet Radio Service  
Gói dch vvô tuyến tng hp  
Global System for Mobile  
Communications  
Hthống thông tin di động toàn  
cu  
đặc tvà cũng là nn tng  
thc thi cho các ng dng Java  
Java 2 Standard Edition  
J2SE  
Operating System  
Hệ điều hành  
OS  
Software Development Kit  
Bcông cphát trin phn mm  
SDK  
Mt chun kết ni tun ttrong  
máy tính  
Universal Serial Bus  
USB  
Global Positioning System  
Wireless Fidelity  
Hthống định vtoàn cu  
Hthng mng không dây  
GPS  
Wi-Fi  
10  
Chương 1. Đặt vấn đề  
1.1. Mng 3G  
1.1.1.Gii thiu  
[1]3G là thut ngữ dùng để chcác hthống thông tin di động thế hth3 (Third  
Generation). Mng 3G (Third-generation technology) là thế hthba ca chun công  
nghệ điện thoại di động, cho phép truyn cdliu thoi và dliu ngoài thoi (ti dữ  
liu, gi email, tin nhn nhanh, hình nh...). 3G cung cp chai hthng là chuyn mch  
gói và chuyn mch kênh. Hthng 3G yêu cu mt mng truy cp radio hoàn toàn khác  
so vi hthng 2G hiện nay. Điểm mnh ca công nghnày so vi công ngh2G và  
2.5G là cho phép truyn, nhn các dliu, âm thanh, hình nh chất lượng cao cho cthuê  
bao cố định và thuê bao đang di chuyển các tốc độ khác nhau. Vi công ngh3G, các  
nhà cung cp có thể mang đến cho khách hàng các dch vụ đa phương tiện, như âm nhạc,  
truyn hình svi chất lượng cao hoc các dch vụ định vtoàn cầu (GPS) hay thư điện  
t…  
1.1.2.Công ngh3G  
Đi cùng với sphát trin ca các ngành công nghip, dch v…thì nhu cu thông tin  
liên lc truyn thông sngày càng phát trin, cùng vi số lượng người dung và nhu cu  
ngày càng tăng, mạng 2G đã dn dn trthành lc hậu khi không đáp ứng được nhu cu  
của người sdng vtốc độ truyền, lưu lượng truyền, băng thông truyền, tốc độ truyn…  
Vì những lý do đó nên mạng 3G ra đời để từng bước gii quyết được nhng vấn đề trên.  
Do có nhn thc vtm quan trng ca các hthống di động nên ngay tkhi quá  
trình phát triển GSM chưa kết thúc, người ta đã tiến hành các dán nghiên cu vi mc  
đích xác định các dch vvà công nghcho thế hệ thoonh tin di động mi. Và sau mt  
thi gian khá dài nghiên cu và trin khai, trên thế gii hin có hai mạng chính được xây  
dng trên công ngh3G.  
- Mạng UMTS được trin khai trên mng GSM hin có, tốc độ đường xung có thể  
lên tên 7.2Mb/sec.  
- Mạng CDMA2000 mang đến khả năng truyền dliu mc 3G cho mng  
CDMA.  
11  
Ngoài ra, mng 3G còn có 3 chun chính:  
- W-CDMA : htrtốc độ truyền đến 1920 Kbps, trong thc tế hiu suất đạt khong  
384 Kbps, tuy nhiên vn lớn hơn rt nhiu mng GSM khong 14.4 Kbps.  
- CDMA : tốc độ dliệu lên đến 2.4 Mbps.  
- TD SCDMA : tốc độ chuyển gói lên đến 2 Mbps.  
Nhìn chung, công nghệ 3G mang đến rt nhiu lợi ích cho người sdng dch vu  
vin thông do băng thông rộng, tốc độ truyn dliệu nhanh. Điều này dẫn đến nhng ng  
dng vtruyn thông thoi và dliu, ti âm thanh, hình nh, truyn hình trc tuyến … sẽ  
phát trin rt mnh m. Và mt ng dng rt quan trng, chc chn strlên vô cùng phổ  
biến trên nn tng công nghệ 3G đó là dịch vxem video trc tuyến theo thi gian thc  
trên đin thoại di động. Đây là một vấn đề nóng hi và còn rt mi mcần được phát trin  
trên nn tng công ngh3G.  
1.1.3.Mng 3G ti Vit Nam  
Các nhà mng ca Vit Nam bắt đầu cung cp công ngh3G từ đầu tháng 10/2009  
với tiên phong là Vina Phone, đi kèm với công ngh3G là 6 dch vụ được xem như bao  
quát hết các nhu cu công vic – cuc sng – gii trí của người dân. Nhưng trên một  
phương diện nào đó, các ứng dng vn chmang tính bao quát, tng thể, chưa đi sâu vào  
tng nhu cu của người sdng.  
Tiếp sau đó, Mobi Phone cho ra mắt dch vVideo Call, mt con bài chiến lược ca  
công ngh3G, dch vụ mà đã từng được miêu tả như lá cờ đầu (ng dng hy dit) , hay  
tiếp theo là thiết bUSB 3G, nó cho phép máy tính có thkết nối internet qua sim điện  
thoại có đăng kí 3G mọi lúc, mọi nơi.  
Sphát trin ca công ngh3G sẽ đẩy mnh sphát trin ca các dch vdành cho  
thiết bcm tay sdng công nghnày. Nht Bn có lẽ là nước thành công nht trong  
vic cung cp công nghệ 3G, nhưng không nhiều người biết rng mng 3G thành công  
như vậy Nht Bn là do mt “kho tàng” các dch vụ kèm theo, trong đó có lẽ ni tiếng  
nhất, ra đời sm nht chính là dch vtruyn video. Ngày xưa, với công ngh2G thì các  
cuc gi video, hay nói chung là vic truyn video trên mobile theo thi gian thc trở  
thành vic bt khthi do tốc độ truyn quá chm. Thì ngày nay, vi tốc độ truyn lớn hơn  
12  
trung bình 20 ln so vi GPRS thì có lvic truyn hình nh, truyn video strthành  
mt ng dng thiết yếu và chc chn sphbiến Vit Nam.  
Hin nay ti Việt Nam, người sdụng đang chủ yếu sdng công ngh2.5G mang  
tên EDGE và sdng internet qua GPRS, vi tốc độ truyn dliu lý tưởng vào khong  
171 Kb/sec, còn thc tế trung bình khong 40 Kb/sec thì công ngh3G chc chn slà  
nn tng cho các dch vcn tốc độ truyn cao.  
Vì vy, mt ng dng cho phép xem video trc tuyến ti Vit Nam chc chn strở  
thành mt dch vtt yếu và phbiến trong cộng đng thuê bao sdng 3G.  
1.1.4.Hệ điều hành mã ngun mAndroid  
1.1.5.Hệ điều hành Android  
Trước hết, điều ni bt nht ca Andorid là nn tng phn mm da trên mã ngun  
mở Linux OS (Kernel 2.6) cho máy di động, nó bao gm hệ điều hành, nhng phn mm  
trung gian (middleware) và cá ng dụng khóa (key applications) để htrcác ng dng  
mà người sdng cần đến.  
Android còn có nhiều công cụ và dụng cụ miễn phí để nghiên cứu và phát triển phần  
mềm trên nền tảng của nó. OHA đã đưa những mẫu điện thoại đầu tiên vào cuối năm  
2008. Ngoài ra, Android là một nền tảng mở cho các thiết bị di động nên có thể tùy biến  
hệ điều hành cho nhiều loại sản phẩm khác nhau và được sử dụng miễn phí.  
Android cho phép nhà phát triển viết và quản lý mã bằng ngôn ngữ Java, điều khiển  
thiết bị thông qua các thư viện Java đã được Google phát triển.  
Như vậy, vi Android, cùng vi tính cht “m” ca nó, nhà phát trin có thddàng  
tác động đến tt ccác chức năng, bộ phn ca thiết bị để làm cho nó theo ý mình, dó là  
một đặc đim thú vnht ca hệ điều hành mã ngun mAndroid.  
1.1.6.Những đặc tính ca hệ điều hành Android  
13  
Hình 1: Hệ điều hành Android  
Mt số đặc đim ca Android[2]  
Handset Layout: Nền tảng này dễ thích nghi lớn hơn, VGA, thư viện đồ họa 2D, thư  
viện đồ họa 3D cơ bản trong OpenGL 2.0, và các cấu trúc điện thoại thong minh truyền  
thống.  
Lưu trữ: Phần mềm cơ sở dữ liệu SQLite được sử dụng cho mục đích lưu trữ, tuy  
nhiên chỉ dùng dể lưu trữ trên thiết bị.  
Tính kết nối: Android hỗ trợ các công nghệ kết nối : GSM/EDGE, IDEN, CDMA,  
EV-DO, UMTS, Bluetooth, Wi-Fi,và WiMAX.  
Tin nhắn: dạng SMS và MMS luôn luôn sẵn sàng với luồng text messaging.  
Trình duyệt web: Trình duyệt web là một phần cơ bản luôn sẵn sang trong mã  
nguồn mở WebKit application framework..  
14  
Hỗ trợ Java: Phần mềm viết bởi Java có thể được biên dịch và chạy trên Dalvik  
virtual machine, nó là một VM đặc biệt cho phép thi hành thiết kế cho thiết bị di động sử  
dụng, mặc dù nó không phải là một công nghệ JVM chuẩn. Android không hỗ trợ J2ME  
giống một số hệ điều hành khác.  
Hỗ trợ Media: Android hỗ trợ hầu như tất cả các định dạng : H.263, H.264 (in 3GP  
or MP4 container), MPEG-4 SP, AMR, AMR-WB (in 3GP container), AAC, HE-AAC  
(trong MP4 hoặc 3GP), MP3, MIDI, OGG Vorbis, WAV, JPEG, PNG, GIF, BMP.  
Tăng hỗ trợ phần cứng: Android có thể hỗ trợ video/ từ camera, cảm ứng, GPS,  
máy đo gia tốc,  
Môi trường phát triển: bao gồm thiết bị emulator, công cụ để debug, bộ nhớ và sự  
định hình thực thi và plugin cho Eclipse IDE.  
Market: giống như nhiều nơi lưu trữ ứng dụng điện thoại cơ bản, Android market là  
một danh mục phần mềm có thể tải về và cài đặt trên thiết bị mà không cần sử dụng PC.  
Cảm ứng đa điểm: Android có hỗ trợ cảm ứng đa điểm, tuy nhiên trước đây chỉ trên  
máy HTC Hero có sử dụng do vấn để bản quyền. Tuy nhiên, đến nay, trên các thiết bị mới  
như Nexus One hay Motorola Android chức năng này đã đươck kích hoạt.  
Bluetooth: Hỗ trợ gửi và nhận file qua Bluetooth 2.0  
Cuộc gọi video: Android không hỗ trợ videocalling. Tuy nhiên nếu chạy UI bổ sung  
thì nó có thể hỗ trợ cuộc gọi video.  
1.1.7. Những đánh giá về sphát trin ca Android ti Vit Nam  
Từ cuối năm 2004, nhiều lời đồn đại trong CNTT và TT về một loại máy điện thoại  
di động "Gphone" hay "Google phone" có nhiều chức năng hiếm có. Nhưng vừa rồi trong  
lời tuyên bố ngày 5/11/2007 bởi chính vị lãnh đạo số 1 của Google - ông Eric Schmidt,  
khi giới thiệu về công nghệ Android đã xóa tan những nghi vấn trong thế giới CNTT và  
TT. Khác với tập đoàn Apple đã đưa vào thị trường toàn cầu một sản phẩm độc đáo có tên  
là "iPhone", Google mạnh hơn nữa, đã biết liên kết 34 tập đoàn và công ty lớn danh tiếng  
trên thế giới dưới danh hiệu "Open Handset Alliance" (OHA) để tạo một thế đứng mạnh  
mẽ và vững chắc, rồi cùng nhau sáng tạo và phát triển Công Nghệ Phần Mềm "Android"  
15  
cho các loại máy di động tương lai trong một thị trường rất rộng lớn (3 tỷ máy) để cạnh  
tranh với những đối thủ đáng nể như Symbian, Microsoft, Palm.  
Như chúng ta biết, hiện tại đã có hơn nửa nhân loại sử dụng máy di động để thoại và  
giao tiếp qua các mạng không dây. Con số 3 tỉ người này sẽ còn tăng lên và máy di động  
càng ngày càng "thông minh" với nhiều chức năng và dịch vụ rất hấp dẫn, cho nên thị  
trường máy di động thông minh sẽ vượt xa máy vi tính trong một tương lai rất gần... Hơn  
nữa máy di động mang lại nhiều chức năng và nhu cầu mới mà máy vi tính không có, đó  
chính là những cơ hội mà VN chúng ta, dù là nước đi sau đẻ muộn trong CNTT và TT, có  
thể khai thác để đi tắt đón đầu thị trường.  
Trên thị trường hiện tai cũng đã có nhiều máy di động dùng hệ điều hành Linux,  
nhưng đặc điểm của Android là bản quyền mã nguồn mở của nó dựa trên nền tảng bản  
quyền của Apache V 2.0) và được ủng hộ bởi nhiều nhà sản xuất máy di động như  
Motorola, Qualcomm, HTC.  
Đây là lần đầu tiên trong lịch sử CNTT và TT, một thế lực hùng hậu được dẫn đầu  
bằng một tập đoàn uy tín và giàu có như Google, mang đến cho cộng đồng nhân tài của  
thế giới một công cụ phần mềm cơ bản miễn phí để cho họ có thể sử dụng và sửa đổi tùy  
hứng đáp ứng đúng nhu cầu sáng tạo của họ mà không sợ bị mất bản quyền và lợi nhuận!  
Thêm vào nữa họ đã treo giải thưởng với tổng số tiền là 10 triệu USD để khuyến khích  
nhân tài thế giới trong việc thiết kế và sản xuất các phần mềm trong mọi lĩnh vực.  
Do sự tính chất mới mẻ của hệ điều hành mã nguồn mở Android, nên đây sẽ là một  
cơ hội của ngành Công nghệ thông tin Việt Nam tiến vào thị trường sản phầm phần mềm,  
dịch vụ cho điện thoại trên thế giới.  
Cùng thời điểm hệ điều hành mã nguồn mở Android ngày càng trở lên phổ biến trên  
thế giới và dần dần đi vào thị trường Việt Nam thì có sự bùng nổ 3G, đây có lẽ là một cơ  
hội rất lớn cho các công ty phát triển ứng dụng trên di động khi mà đã hội tụ đầy đủ các  
điều kiện.  
1.2. Hthng thông tin trc tuyến trên điện thoại di động  
Do đặc điểm của điện thoi di động trên điện thoi là màn hình nh, tốc độ truyn  
dliu rt chm nên vic phát trin các hthng thông tin trc tuyến cho điện thoi di  
16  
động thc sự chưa phát triển, nhưng lý do quan trng nht có llà do tốc độ truyn dữ  
liu. Cũng vì lẽ đó nên thm chí các nn tng cũ phát triển phân mềm cho điện thoi, ví  
dụ như J2ME còn không cung cp htrkết nối cơ sở dliu. Các ng dng cn truyn  
ti dliu lớn như xem video trực tuyến theo thi gian thc, hc trc tuyến, ti dliu  
lớn… trên điện thoại chưa phát triển.  
Vi thiết bị được cung cp hệ điều hành mã ngun mở Android, người dùng có thể  
ddàng thao tác vi hthng thông tin trc tuyến. Thêm vào đó, với công ngh3G, tc  
độ ti dliu ln skhc phục được nhược điểm quan trng nht ca các hthng thông  
tin trc tuyến trên điện thoại di động. Vì vy, vi skết hp gia hệ điều hành mã ngun  
mAndroid và công ngh3G sẽ là cơ sở cho sphát trin các hthng thông tin trc  
tuyến trên đin thoại di động.  
1.3. Bài toán  
1.3.1.Đặt bài toán  
Trên cơ sở nhu cu của người sdụng ngày càng tăng và mọi điều kin về cơ sở vt  
chất đều đã có đầy đủ thì mt hthng cho phép tìm kiếm, cp nhp, xem video trc  
tuyến mà không cn phi ti toàn bvthiết bị trước khi xem có lstrlên phbiến và  
quan trng trong cộng đồng người sdng mng 3G trên hệ điều hành Android.  
Vy bài toán ca chúng ta ở đây sẽ là xây dng mt hthng cho phép tìm kiếm,  
cp nhp, xem video dưới dng streaming trên cơ sở nhng htrvStreaming video ca  
thiết bị di động cm tay trên nn tng hệ điều hành mã ngun mAndroid.  
Đây là bài toán đầu tiên cho skết hp gia truyn dliu cao trên công ngh3G  
và hệ điều hành mã ngun mAndroid, nó slà nn tng cho sphát trin các ng dng  
hthng thông tin trc tuyến đòi hi truyn dliu tốc độ cao như học trc tuyến, truyn  
hình, gii trí trc tuyến…  
1.3.2. Các hthống tương tự  
Trên thế gii có mt hthng rt ni tiếng, đó là hệ thống youtube, được cung cp  
qua các trang web : http://www.youtube.com. Nó cũng cho phép xem video dưới dng  
streaming trên cthiết bị di động và trên máy tính. Vit Nam, hthống lưu trữ trang  
web và cho phép xem video cũng đã xut hin mc dù quy mô vẫn chưa thể bng youtube  
17  
nhưng phần nào cũng cho thấy tm nhìn xa ca nhà phát trin Việt Nam, đó là hệ thng  
xem video được cung cp qua website : http://www.clip.vn  
18  
Chương 2. Một số kiến thức cơ sở  
2.1. Mt số phương pháp xem video nói chung  
Có hai dng chính của phương pháp truyền video. Đó là Downloading và Streaming.  
Downloading: Khi ti vmt tp tin thì toàn btp tin sẽ được lưu trên thiết b,  
nhng tp tin này bạn có thmở và xem sau đó. Phương thức này có ưu điểm như là truy  
xut nhanh đến các đoạn khác nhau trong tập tin nhưng có mt nhược điểm lớn đó là phải  
chcho toàn btập tin được ti vtrước khi nó có thể xem được. Nếu như tệp có dung  
lượng nhỏ thì điều này không có quá nhiu bt tin, nhưng với tp tin ln và ni dung dài  
thì nó có thgây ra nhiu khó chu.  
Streaming: Phương thức Streaming làm vic có mt chút khác bit – người dùng  
cui có thbắt đầu xem tp tin ngay khi nó bắt đầu được ti. Tập tin được gi đến người  
sử dụng trong các chui liên tiếp, và người sử dụng xem ni dụng ngay khi nó đến mà  
không phải chờ đợi. Phương thức này được sử dụng để truyn tải các skin trc tiếp.  
Ngày nay, cùng vi sbùng nổ cùa internet băng thông rộng thì vic ti dliu nhc  
hoặc video dưới dng streaming ngày càng phbiến.  
Streaming video là gi ni dung dng nén trên internet và hin thbởi người xem  
thiết bcui theo thi gian thc. Hay nói mt cách nôm na thì vi streaming video hoc  
streaming phương tin truyn thông thì một người sdng ti thiết bcui không phải đợi  
để ti toàn btp tin về để chạy nó. Thay vào đó các phương tin truyền thông như video,  
tp tin nhạc được gi theo mt lung dliu liên tục và được chạy ngay khi nó đến hoc  
được lưu lại chờ đến lượt được chạy. Người sdng scn mt thiết bị mà nó được cài  
đặt sẵn chương trình phn mm mà nó liên tc ti dliu theo lung vthiết bri ngày  
sau đó kết nối đến màn hình hin thị, loa… để chy tập tin đó. Ngoài ra , Streaming  
video được thhiện dưới hai dng: Video theo yêu câu (on demand) và Video thi gian  
thc (live event), luận văn này sẽ đi sâu vào vấn đề video theo yêu cu.  
19  
Video theo yêu cu là các dliệu video được lưu trữ trên multimedia server và được  
truyền đến người dùng khi có yêu cầu, người dùng có toàn quyền để hin thcũng như  
thc hin các thao tác (tua, dng, nhy qua ..) với các đoạn dliu này.  
Video thi gian thc là các dliệu video được chuyn trc tiếp tcác ngun cung  
cp dliu theo thi gian thc (máy camera, microphone, các thiết bphát dliu video  
...). Các dliu này sẽ được multimedia phát quảng bá thành các kênh người dùng schỉ  
có quyn truy nhp bt kỳ kênh ưa thích nào để hin thdliệu mà không được thc hin  
các thao tác tua, dng vv.. trên các dliệu đó (giống như TV truyền thng).  
Qui trình phát audio/video trc tuyến tiêu biu bắt đầu vi trang HTML trong trình  
duyệt. Khi người dùng nhn liên kết ni dung hoặc chương trình player, trình duyt sẽ  
chuyn yêu cầu đến máy chweb. Máy chweb (web server) schuyn yêu cầu đến máy  
chdành riêng cho vic truyn phát ni dung, máy chủ này được gi là streaming server.  
Thc tế, có mt sgii pháp sdụng web server đảm nhn vai trò truyn phát  
audio/video (dùng giao thc http), gii pháp này ít tốn kém và đơn giản. Tuy nhiên, để  
cung cp audio/video chất lượng cao cũng như khả năng đáp ứng đồng thi nhiu lung  
truyn, cn có phn mm máy chchuyên bit (dùng giao thc truyn khác vi máy chủ  
web).  
ng dng phbiến nht ca hình thc Streaming video là dch vvideo theo yêu  
cu. Khách hàng có thyêu cầu phim video đã được shóa (và nén mã hóa) lưu giữ ti  
server vào bt klúc nào. Nếu mun, khách hàng có thể điều khin lung ni dung tm  
dng, quay li hay ti (nhgiao thc RTSP hay MMS); nói mt cách khác, có ththc  
hin giống như với đu máy ti nhà.  
2.1.1.Giao thc htrStreaming video  
Để sdng dch vStreaming video thì cmáy phc vvà máy khách cn phi có  
khả năng “giao tiếp” được vi nhau thông qua mt giao thc chung, và trên thế giới, đã có  
nhiu giao thức đưc phát triển để htrStreaming video như:  
- Giao thc Datagram  
- Giao thc RTSP (Real Time Streaming Protocol)  
- Giao thc Unicast  
- Giao thc Multicast  
20  
- Giao thc IP Multicast  
- Giao thc Peer-to-Peer.  
Nhưng phổ biến nht hin nay cho truyền video dưới dng streaming là giao thc  
RTSP. Tuy nhiên giao thc này hiện chưa được htrtrên hệ điều hành mã ngun mở  
Android. Vì vy trong luận văn này chúng ta sẽ nghiên cu trên giao thc HTTP do hệ  
điều hành mã ngun mAndroid phiên bản 1.5 chưa hỗ trcác giao thc trên.  
2.1.2.Định dng  
Với chương trình Streaming video thông thường thì có thxlý rt nhiều định dng,  
tuy nhiên, dó luận văn đang tập trung nghiên cu vstreaming trên hệ điều hành mã  
ngun mAndroid, vì thế chtp sdng các định dng mà hệ điều hành này htrlà  
H263, H264 AVC MPEG-4 SP.  
2.1.3.Server  
Như đã nói trên, Streaming video sdng giao thc HTTP... ở server để truyn dữ  
liu theo dng streaming qua mạng Internet, đồng thi sdng các chuẩn nén để gim  
dung lượng dliu, cung cp khả năng nén dữ liu ti nhiu mc nén, nhiều kích thước  
hin thị để có thphù hp với độ rông băng thông của nhiu mng truyn dẫn để tối ưu  
hoá vic truyn dliu qua mng. Cũng chính vì vy vic truyn Streaming video qua  
mng sphthuc rt nhiu vào các sn phm phn mm Video Streaming Server.  
Tuy nhiên, để xây dng mt hthng tìm kiếm video, cp nhập video như mục tiêu  
ca luận văn này thì có mt vấn đề rất khó khăn khi thiết lp Server, đó là do thiết bcm  
tay sdng hệ điều hành mã ngun mAndroid không thtruy cp trc tiếp đến cơ sở dữ  
liu ca server.  
Vì vy ta cn phi xây dng mt Servlet như là một bxử lý trung gian để htrợ  
các giao tiếp tthiết bị đến cơ sở dliu trên Server.  
2.1.4.Client  
Đầu tiên Client phải được kết ni với internet và được phép truy cập vào địa chtheo  
url cung cấp video. Sau đó nó phải được cài đặt phn mm cho phép kết ni vi Server,  
21  
và Servlet nhn các lung dliệu được gi tServer ri kết nối đến thiết bhin thị để  
chy dliu video.  
2.1.5.Servlet  
Servlet đóng vai trò là đối tượng nhn dliu tServer và trli Client do thiết bị  
điện thoại không tác động trc tiếp được vào cơ sở dliu trên Server, cũng như không  
nhn trc tiếp được các lung dliu ttrên Server chuyn xung.  
2.2. Hệ điều hành Android  
2.2.1.Kiến trúc ca hệ điều hành mã ngun mAndroid  
Hệ điều hành Android gm bn thành phn chính cu thành[3] :  
- ng dng: Đây là lớp trên cùng ca kiến trúc Android. Android slàm vic vi  
mt bộ ứng dng ct lõi bao gm thư đin t, tin nhn SMS, lch, bản đồ, trình duyt,  
danh b,… Tt ccác ng dụng đu sẽ được viết bng ngôn ngJava.  
Hình 2: Tng ng dng  
- Khung ứng dụng: Bằng cách cung cấp một nền tảng phát triển mở, Android cung  
cấp cho người phát triển khả năng xây dựng ứng dụng rất phong phú. Người phát triển có  
toàn quyền sử dụng các thiết bị phần cứng hay ứng dụng chạy ở nền… để tạo ra ứng dụng  
theo ý mình. Kiến trúc ứng dụng được thiết kế để đơn giản hóa việc sử dụng lại các thành  
phần, mỗi ứng dụng có thể cho phép các ứng dụng khác khả năng sử dụng các thành phần  
này. Điều này giống với kỹ thuật cho phép người dùng đặt lại các thành phần.  
Dưới đây là các ứng dụng của hệ thống và dịch vụ:  
Các ứng dụng được xây dựng dựa trên một tập hợp phong phú của các  
Views, bao gồm các list, các grid, các textbox, các button và thậm chí  
nhúng cả trình duyệt web.  
22  
Content Providers cho phép các ứng dụng truy xuất dữ liệu từ ứng dụng  
khác , hay chia sẻ dữ liệu.  
Resource Manager cung cấp truy cập tới tài nguyên không phải mã nguồn  
như là các tập tin xâu, đồ họa, hay layout.  
Notification Mana.  
- Bộ thư viện: cung cấp một tập các thư viện viết bằng C/C++ để các thành phần  
của Android sử dụng khác nhau. Do vậy khung ứng dụng Android mang lại nhiều khả  
năng cho những người phát triển. Một vài thư viện chính của Android:  
Hệ thống thư viện C: là dẫn xuất của hệ thống thư viện C chuẩn cho thiết  
bị nhúng trên nền Linux.  
Thư viện đa phương tiện: sử dụng nhân mở PacketVideo, hỗ trợ nhiều định  
dạng âm thanh, hình nh và cả video, bao gồm Mpeg4, H264, MP3, ACC,  
ẢM, JPG và PNG.  
Surface manager: quản lý việc truy cập tới các hệ thống hiển thị con và việc  
kết hợp của các lớp đồ họa 2 chiều, 3 chiều từ nhiều ứng dụng.  
Thư viện cơ sở Web: máy trình duyệt web hiện đại tận dụng sức mạnh của  
trình duyệt Android, cho phép nhúng cửa sổ duyệt web cho ứng dụng.  
SGL (Scalable Graphics Library): xử lý đồ họa 2D của Android.  
Thư viện 3D: được cài đặt trên dựa trên API của OpenGL ES 1.0; thư viện  
bao gồm cả bộ cảm nhận gia tốc phần cứng 3D, tối ưu hóa các phần mềm  
3D.  
FreeType: thư viện font chữ ảnh nhị phân và véc tơ.  
SQLite: là thư viện truy xuất cơ sở dữ liệu nhỏ, mạnh, có sẵn trong mọi ứng  
dụng Android.  
23  
Hình 3: Thư viện ca Android.  
- Nhân Linux: Android dựa trên Linux 2.6 cho các dịch vụ hệ thống như bảo mật,  
quản lý bộ nhớ, quản lý tiến trình (xử lý tiến trình, đa luồng), ngăn xếp mạng và trình điều  
khiển thiết bị (giao tiếp USB, giao tiếp hồng ngoại, không đây, v.v…). Nhân Linux này  
cũng có vai trò như một lớp trừu tượng giữa phần cứng và phần mềm.  
Hình 4: Nhân Linux.  
2.2.2.API ca Android  
Để có thxây dng các ng dng trên hệ điều hành Android thì trước tiên phi tìm  
hiu các giao din lp trình ng dng ca hệ điều hành này. Vì vy sau đây sẽ là gii  
thiu về các API cơ bản ca Android và sẽ được sdng trong khóa lun này:  
2.2.2.1.  
Activity  
[4]Là thành phn quan trng nht ca mt ng dng. Hiu đơn giản thì Activity như  
là mt môi trường được khi tạo để ngưi sdng to ra, hin thcác giao din, thc hin  
nhng công việc mà người sdng mun làm.  
Vòng đời ca mt Activity:  
24  
Hình 5: Vòng đời ca mt Activity.  
Activity có mt số phương thức chính :  
- onCreate(): được gọi khi mà Activity được gi lần đầu tiên. Đây là nơi để thiết lp  
các giá trtĩnh. Chy sau nó luôn là onStart().  
25  
- onRestart(): được gọi sau khi Activity đã dng lại và sau đó sẽ tiếp tục được bt  
đầu li. Chy sau nó luôn là onStart().  
- onStart(): được gi khi các Activity mun hin thị cho người dùng,  
- onResume(): được gi khi mà Activity bắt đầu tương tác với người dùng .  
- onStop(): được gi khi Activity không còn hin thị cho ngưi sdng khi Activity  
khác đã được khởi động và chiếm chca Activity này.  
- onDestroy(): hàm cui cùng bn gi khi mun kết thúc Activity, gi hàm này khi  
Activity ca bạn đã hoàn thành hoc hthng tm thi hy Activity ca bn có mục đích.  
2.2.2.2.  
HTTP  
[5]Là các lp, hàm htrvic kết nối đến internet và ti các ni dung vmáy xlý  
để ly thông tin. Trong khóa lun này có sdng mt slớp để phc vvic gi yêu cu  
và nhn dliu trvtServlet.  
HttpEntity: được dn xut tlp org.apache.http.HttpEntity, là một đối tượng được  
gửi đi kèm cùng với các thông điệp HTTP, nó có thể được tìm thấy trong các thông điệp  
gi yêu cu (request) hoặc các thông điệp trv(response).  
HttpResponse: được dn xut tlp org.apache.http.HttpResponse, là đối tượng trả  
vca HTTP.  
HttpClient: được dn xut tlp org.apache.http.client.HttpClient, là mt giao din  
cho một người dùng HTTP. HttpClient đóng gói tất cả các đối tượng cn thiết để thc  
hin các yêu cu HTTP.  
HttpPost: được dn xut tlp org.apache.http.client.methods.HttpPost, đây là  
phương thức chính để gi các yêu cầu đến Server và nhn li các lung dliu vtừ  
Servlet.  
2.2.2.3.  
Intent  
[6]Là dn xut tlp : android.content.Intent;  
Nó như là một nn tảng để truyn ti các thông báo từ nơi muốn gửi đến nơi nhận,  
là mi liên lc gia các Activity cn truyn thông ln nhau. Các Intent được to ra có hai  
phn mang thông tin chính là:  
26  
- Hành đng (action) : các hành đng nói chung sẽ được thc hin.  
- Dliu (data): các dliệu để thc hiện hành động.  
Ngoài ra Intent còn mt sthuc tính phquan trọng như:  
- Thloi (category): cho phép thêm thông tin vào các hành động để thc thi.  
- Loi (type): chỉ định mt kiu rõ ràng ca dliu Intent.  
- Thành phn: chỉ định rõ ràng tên ca mt lp thành phần để sdng Intent.  
- Bsung (extras): đây là một Bundle ca các thông tin bổ sung. Nó được sdng  
để cung cp các thông tin mrng cho các thành phn.  
Các gii pháp sdng Intent:  
- Intent rõ ràng (Explicit Intent): đã chỉ định các thành phn (bằng các phương thức  
như setComponent() hoặc setClass()), nó cung cấp chính xác đến các lp cn dliu  
Intent mang đến để xlý.  
- Intent n (Implicit Intent): không chỉ định rõ thành phn nào schy dliu mang  
theo ca Intent, tuy nhiên nó bao gồm đầy đủ thông tin cho hthống để xác định thành  
phần đang sẵn sang nào tt nht schạy Intent đó.  
Ví d: trong luận văn này có sử dng một Intent để gi thông tin gia hai Activity.  
Activity thnht skết thúc, gi Activity thhai khởi động, đồng thi truyn dliu bổ  
sung theo đActivity thhai xlý.  
2.2.2.4.  
View  
[7]Đây là một gói chuyên cung cấp các đối tượng được sdụng để hin th,tchc  
và tương tác giữa thiết bị và người sdng, hay nói cách khác, nó cung cp giao din  
tương tác giữa thiết bị và người sdng.  
Là dn xut tlp: android.View.*;  
Chúng ta sẽ đi sâu vào một slp của gói View này để phc vcho khóa lun:  
- Thực đơn(Menu): giao diện để kết ni các mc trong thực đơn. Theo mặc định,  
mi Activity htrmt thực đơn la chọn hành động hoc các la chn. Bn có ththêm  
các mc vào thực đơn này và xử lý cách hành động nháy chut trên mc mà bn va bổ  
27  
sung. Cách đơn giản nhất để thêm các mc là thêm một đoạn mã XML vào thực đơn, còn  
cách đơn giản nhất để xlý skin khi chn mục là dùng phương thức  
onOptionsItemSelected(MenuItem) onContextItemSelected(MenuItem). Nó cung  
cp mt số phương thức chính sau cho người lp trình:  
abstract Menuitem add(): thêm mt mc vào trong thực đơn.  
abstract int addIntentOptions(): thêm vào mt nhóm các mc thực đơn tương ứng  
với hành động để thc hin một ý định cth.  
abstract SubMenu add(): thêm vào mt thực đơn con.  
abstract void clear(): xóa bnhng mc tn ti khi thực đơn, để li mt thực đơn  
trng.  
abstrack void close(): nếu thực đơn đang mở thì sẽ đóng vào.  
abstrack MenuItem findItem(): trvmt mc cn tìm kiếm.  
abstrack MenuItem getItem(): trvmt mc trong thực đơn theo giá trị chs.  
abstrack hasVisibleItem(): quay trli thực đơn hiện ti mà các mc có thnhìn  
thy.  
abstrack boolean performIdentifierAction(): chạy các hành động mục được la  
chn liên kết vi các kí tviết tt.  
- Bmt (Surface): là mt giao diện để mt cái gì đó như một chương trình hay tiến  
trinh nm gibmt hin th. Cho phép kiểm soát kích thước Bmặt và định dng, thay  
đổi các điểm nh trên bmt và theo dõi những thay đổi trên bmt. Khi sdng giao  
din này tmt lung khác dùng SurfaceView, bn phải để ý tới phương thức  
lockCanvas() Callback.surfaceCreated. Đây cũng là mt thành phn quan trng trong  
luận văn này vì nó là giao diện để phát các video dưới dạng streaming. Dưới đây là một  
số phương thức quan trng của đối tưng Surface:  
abstrack void addCallback(): thêm vào mt giao din gi li cho vt nm ginày.  
abstrack Surface getSurface(): truy cp trc tiếp đến đối tưng Surface.  
abstrack boolean isCreating(): sdụng phương thức này để tìm mt Surface trong  
tiến trình được to từ phương thức gi li.  
abstrack Canvas lockCanvas(): bắt đầu sửa các điểm nh trên Surface.  
abstrack void setFixedSize(): to ra một Surface đã được cố định kích thước.  
abstrack void setFormat(): thiết lp yêu cầu định dng đim nh cho Surface.  
abstrack void setKeepScreenOn(): la chn cho phép hoc không cho phép màn  
hình bt chừng nào Surface đã chy.  
28  
abstrack void setSizeFromLayout(): cho phép Surface thay đổi kiến thức cơ sở  
trong cu trúc.  
abstrack void setType(): thiết lp kiu ca Surface.  
abstrack void unlockCanvasAndPost(): kết thúc ssửa điểm nh trên Surface.  
Thực đơn và bề mặt được hin thtrên thiết bị như sau:  
Thực đơn:  
Hình 6: Thực đơn  
Bmt:  
Hình 7: Bmt.  
29  
2.2.2.5.  
MediaPlayer  
[8]Đây là một lp rt quan trng, có thcoi nó là phn ct lõi trong luận văn này.  
Nó làm nhim vxlý ti vdliu rồi phát ngay đúng theo định nghĩa về streaming.  
Ngoài ra nó còn cung cp các chức năng phục vu cho việc điều khin bt, tt, tua, tm  
dng video.  
Là dn xut tlp : android.media.MediaPlayer.  
Đối tượng MediaPlayer được sdụng để diu khin các hoạt động ca các tệp đa  
phương tiện.  
Hình 8: Lược đồ trng thái.  
30  

Tải về để xem bản đầy đủ

pdf 61 trang yennguyen 07/07/2025 1040
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Xây dựng hệ thống xem video trực tuyến trên hệ điều hành Android", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_xay_dung_he_thong_xem_video_truc_tuyen_tren_he_die.pdf