Xây dựng ứng dụng nghe nhạc trên nền hệ điều hành android

86 2.3K 16
Xây dựng ứng dụng nghe nhạc trên nền hệ điều hành android

Đ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

NHIỆM VỤ CỦA ĐỒ ÁN Đề tài tập trung nghiên cứu hệ điều hành Android với số nội dung sau:       Giới thiệu tổng quan hệ điều hành Android Nghiên cứu kiến trúc hệ điều hành Android Nghiên cứu khối tạo nên ứng dụng Android Tìm hiểu eclipse Android Project eclipse Nghiên cứu thành phần tạo nên giao diện ứng dụng Tìm hiểu gói Android đặc biệt tập trung vào gói android media lớp MediaPlayer  Xây dựng demo ứng dụng MusicPlayer LỜI CẢM ƠN Để có thời gian viết đồ án làm việc hiệu cho em xin gửi lời cảm ơn chân thành đến Trường Đại Học Công Nghệ Truyền Thông – Bộ môn Hệ Thống Thông Tin tạo điều kiện tốt cho em hoàn thành tốt đợt báo cáo đồ án tốt nghiệp Bên cạnh đó, em xin cảm ơn hướng dẫn tận tình cô Nguyễn Thị Tính giúp đỡ em hoàn thành tốt đợt báo cáo đồ án tốt nghiệp Thiếu giúp đỡ cô em có kết ngày hôm Trong trình làm đồ án, trình viết báo cáo, em khó tránh khỏi sai sót Rất mong thầy, cô môn cô giáo Nguyễn Thị Tính bỏ qua dẫn thêm cho em Em xin chân thành cảm ơn! Thái Nguyên, tháng năm 2012 Sinh viên Bùi Văn Cương LỜI CAM ĐOAN Em xin cam đoan toàn nội dung báo cáo em tự tìm hiểu nghiên cứu định hướng cô giáo hướng dẫn Nội dung báo cáo không chép vi phạm quyền từ công trình nghiên cứu Nếu lời cam đoan không đúng, em xin chịu hoàn toàn trách nhiệm trước pháp luật Thái Nguyên, tháng năm 2012 Sinh viên Bùi Văn Cương MỤC LỤC LỜI NÓI ĐẦU Trong năm gần đây, tảng công nghệ thông tin phát triển mạnh mẽ với đời thiết bị di động máy tính bảng, điện thoại, smartphone…ngày ưa chuộng sử dụng nhiều Các ứng dụng không chạy máy tính mà chạy thiết bị có hệ điều hành Và việc xây dựng ứng dụng cho thiết bị người ta quan tâm nhiều Các ứng dụng dựa tảng hệ điều hành cho thiết bị di động ngày đa dạng phong phú hơn, đáp ứng ngày nhiều yêu cầu thực tế người dùng Mỗi thiết bị chứa hệ điều hành có khả chạy ứng dụng máy tính Có thể nói hệ điều hành tảng ứng dụng làm phong phú cho tảng Android OS hệ điều hành điện thoại di động phát triển Google dựa tảng Linux Việc xây dựng ứng dụng cho điện thoại di động chạy hệ điều hành Android phát triển Việt Nam Với hấp dẫn ứng dụng Android với tính tò mò thích khám phá khuyến khích bạn bè cô giáo hướng dẫn Em định thực đồ án “Xây dựng ứng dụng nghe nhạc hệ điều hành Android” Nội dung đồ án em gồm chương: Chương 1: Tổng quan hệ điều hành Android Chương trình bày lịch sử phát triển, ưu kiến trúc hệ điều hành Android Chương 2: Cơ sở lý thuyết lập trình ứng dụng Android Chương trình bày cấu trúc project, khối tạo nên ứng dụng hệ thống thành phần tạo giao diện ứng dụng Android Chương 3: Phân tích thiết kế hệ thống Chương trình bày biểu đồ UseCase biểu đồ trình tự ứng dụng nghe nhạc Chương 4: Thiết kế ứng dụng Chương trình bày chi tiết quy trình thiết kế ứng dụng MusicPlayer eclipse CHƯƠNG TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID Giới thiệu chung hệ điều hành Android Android tảng mã nguồn mở toàn diện thiết kế cho thiết bị di động Nó liên minh ông lớn Google Open Handset Alliance tập đoàn sản xuất thiết bị cầm tay tiếng Intel, SamSung, Toshiba….Với mục tiêu “tăng tốc việc đổi di động cung cấp cho người tiêu dùng nhiều tiện ích phong phú, tốn kém.” Và Android công cụ để làm điều Có thể nói Android cách mạng không gian di động Lần thực tảng mở, tách biệt phần cứng với phần mềm chạy Điều cho phép số lượng lớn thiết bị chạy nhiều ứng dụng tương tự tạo hệ sinh thái phong phú đa dạng cho nhà phát triển người tiêu dùng Android tảng toàn diện điều có nghĩa tập hợp phần mềm hoàn chỉnh cho thiết bị di động Đối với nhà phát triển Android cung cấp công cụ khung cho việc phát triển ứng dụng cách nhanh chóng dễ dàng Thư viện Android SDK tất mà cần dùng để bắt đầu phát triển với android; điện thoại thật Còn người sử dụng, Android làm việc cách xác bề mặt hình điện thoại Thêm vào người sử dụng tùy chỉnh điện thoại theo cách riêng họ Đối với nhà sản xuất Android giải pháp hoàn chỉnh để chạy thiết bị họ Khác với số trình điều khiển phần cứng cụ thể, Android cung cấp thứ để thiết bị họ làm việc Android tảng mã nguồn mở, toàn ngăn xếp từ module cấp thấp Linux đến tất thư viện gốc từ ứng dụng khung ứng dụng hoàn chỉnh hoàn toàn mở Hơn Android chứng nhận hệ điều hành thân thiện với người sử dụng Nó cấp giấy phép Apache/MIT(giấy phép chứng nhận mã nguồn mở thân thiện) mở rộng phát triển với nhiều mục đích khác mà không cần phải để ý đến quyền hay giấy phép sử dụng Điều đồng nghĩa với việc bạn xem toàn mã nguồn tảng, thêm thiết kế bí mật bạn không đưa lại cộng đồng không muốn Android thiết kế với mục đích xây dựng tảng cho thiết bị di động Khi thiết kế Android, nhóm phát triển xem xét để lường trước khả mà không thay đổi thiết bị Chẳng hạn công suất thiết bị thay đổi, với hạn chế nhớ tốc độ xử lý ràng buộc việc thiết kế tảng di động đề cập đến suốt thời gian thiết kế Android Android thiết kế để chạy tất loại thiết bị cầm tay, Android không thực giả định kích thước độ phân giải hay chipset thiết bị Trong lịch sử phát triển, ban đầu Android thuộc sở hữu công ty Android Inc Được Google mua lại vào năm 2005 bắt đầu xây dựng Android Platform Cuối năm 2007 liên minh Open Handset Alliance thành lập bao gồm tập đoàn lớn bật SamSung, LG, Toshiba… công bố Android thức trở thành mã nguồn mở Phiên SDK phát hành vào tháng 11 năm 2007, hãng T-Mobile công bố điện thoại Android T-Mobile G1, smartphone dựa tảng Android Một vài ngày sau đó, Google tiếp tục công bố mắt phiên Android SDK release Candidate 1.0 Trong tháng 10 năm 2008 Google cấp giấy phép mã nguồn mở cho Android Platform Vào cuối năm 2008, Google cho phát hành thiết bị cầm tay gọi Android Dev Phone chạy ứng dụng Android mà không bị ràng buộc vào nhà cung cấp mạng điện thoại di động Mục tiêu thiết bị cho phép nhà phát triển thực thí nghiệm thiết bị thực chạy hệ điều hành Android mà ký hợp đồng Năm 2009 thiết bị chạy tảng Android tăng lên Phiên hệ điều hành phát hành là: Cupcake (1.5), Donut(1.6), Eclair(2.0 2.1) Lúc có 20 thiết bị chạy hệ điều hành Android Trong năm 2010, Android tảng tốt thứ cho điện thoại Smartphone sau Blackberry Froyo (Android 2.2) phát hành Lúc có 60 thiết bị chạy tảng Android Với Google, android hoàn toàn miễn phí, Google không thu tiền từ hãng sản xuất điện thoại, không trực tiếp hưởng lợi từ android bù lại, dịch vụ hãng Google Search, Google Maps, nhờ có android mà dễ dàng xâm nhập nhanh vào thị trường di động điện thoại sản xuất tích hợp hàng loạt dịch vụ Google.Từ hãng kiếm bội, chủ yếu từ nguồn quảng cáo dịch vụ Với nhà phát triển ứng dụng (developers), việc hệ điều hành android sử dụng phổ biến đồng nghĩa với việc họ thoải mái phát triển ứng dụng android với tin tưởng ứng dụng sẻ chạy nhiều dòng điện thoại hãng khác Họ phải quan tâm phát triển cho điện thoại nào, phiên tảng android chung cho nhiều dòng máy, máy ảo Java chịu trách nhiệm thực thi ứng dụng phù hợp với dòng điện thoại mà chạy Tất chương trình ứng dụng viết ngôn ngữ Java kết hợp với XML nên có khả khả chuyển cao Một số hãng sản xuất điện thoại có sử dụng hệ điều hành android tiêu biểu : - HTC với dòng Desire HD, Evo 4G, DROID ERIS, Desire Z, Hero, Desire, Tattoo, Wildfire, Droid Incredible, Legend, Magic, Google Nexus One, Dream, Aria, Paradise - LG với dòng GT540 Optimus, Optimus Chic E720, Optimus One P500, GW620, Optimus Z, Optimus Q, KH5200 Andro-1, GW880, C710Aloha - MOTOROLA với dòng MILESTONE 2, BACKFLIP, Droid XTreme, - MT710 ZHILING, MILESTONE, XT720 MOTOROI, A1680, XT800 - ZHISHANG, DEFY, CHARM, XT806 - SAMSUNG với dòng máy I9000 Galaxy S, Galaxy Tab, Epic 4G, i5510, I5500 Galaxy 5, I7500 Galaxy, I5800 Galaxy 3, M110S Galaxy S, I6500U Galaxy, Galaxy Q, I5700 Galaxy Spica, I8520 Galaxy Beam, I909 Galaxy S - SONY : XPERIA X10, XPERIA X10 mini, XPERIA X8 - ACER với dòng máy beTouch T500, Liquid E, Stream, Liquid, beTouch - E110, beTouch E130, beTouch E400, beTouch E120, Liquid Metal - Ngoài nhiều hãng điện thoại vừa nhỏ khác sử dụng hệ điều hành android sản phẩm Giống phần mềm Android cải thiện theo thời gian, điều phản ánh số phiên Bảng sau giải thích số phiên bản: Trong bảng quan trọng thể cấp độ APIs(API level) Các phiên thay đổi theo thời gian vá lỗi cải tiến hiệu suất Bảng sau thể lịch sử phiên phân bố phiên năm 2011 Trong bảng phân phối trên, có nhiều người sử dụng phiên 1.5 1.6 nhiều phiên 2.3 lại không nhiều người sử dụng cao nhất, phiên 2.x tăng lên phiên 1.x cũ vá lỗi hay cập nhật firmware thay vào nhà sản xuất thường nâng cấp Tuy nhiên từ phiên 1.6 trở phiên ổn định thích hợp với hầu hết ứng dụng Máy ảo Dalvik Android Dalvik mục đích xây dựng máy ảo thiết kế đặc biệt cho android, phát triển Dan Bornstein nhóm ông Google Máy ảo Java được thiết kế với kích thước phù hợp nhóm Dalvik cảm thấy họ làm công việc tốt thiết bị di động Họ nhìn ràng buộc cụ thể môi trường di động thay đổi tương lai gần Chẳng hạn tuổi thọ pin với sức mạnh xử lý Và Dalvik xây dựng để giải ràng buộc Một tác dụng khác việc thay máy ảo Java máy ảo Dalvik việc cấp giấy phép sử dụng Trong ngôn ngữ lập trình java, công cụ java, thư viện java miễn phí máy ảo Java lại Chính vấn đề phát sinh mà vào năm 2005 công việc Dalvik bắt đầu Ngày nay, có nhiều lựa chọn mã nguồn mở thay cho máy ảo Java SUN dự án OpenJDK Apache Harmony Bằng việc phát triển mã nguồn mở đắn chứng nhận máy ảo thân thiện.Android cung cấp tảng đầy đủ tính năng, khuyến khích áp dụng cho nhiều loại thiết bị mà không cần phải quan tâm giấy phép sử dụng Trong Java tệp tin nguồn Java biên dịch thành mã Java byte sử dụng trình biên dịch Java, sau chạy mã byte máy ảo Java Trong Android điều lại khác, ta phải biên dịch tệp tin nguồn thành mã byte Java sử dụng trình biên dịch Java Nhưng thời điểm mã byte Java lại biên dịch lại lần trình biên dịch Dalvik để trở thành mã byte Dalvik Cuối mã byte Dalvik thực thi máy ảo Dalvik Hình minh họa việc so sánh hai trình biên dịch trên: 10 CHƯƠNG THIẾT KẾ ỨNG DỤNG Một số gói Android Android thiết kế dựa tảng Linux lấy ngôn ngữ lập trình Java làm sở thiết kế ứng dụng Lớp gói Android chủ yếu dựa thư viện java.lang.Object Vì nói kiến thức để lập trình android kiến thức java, nghĩa hiểu class, package, biết ý nghĩa từ khóa public, private, protected, thành thạo lệnh if, for(), switch(), while(), biết sử dụng lệnh Integer.parseInt() hay String.valueOf() Nên có thêm kiến thức gói java.util gói hỗ trợ nhiều lớp mạnh sử dụng nền, gói java.io, java.net cần thiết trình xây dựng ứng dụng Một số gói mặc định có sẵn Android mà không cần khai báo gói android với lớp tự động sinh dự án Android tạo Chẳng hạn lớp điển hình R.java Manifest Gói có từ API level Gói chủ yếu chứa lớp tài nguyên sử dụng ứng dụng bao gồm tảng định nghĩa quyền truy cập ứng dụng cho tính hệ thống Người dùng sử dụng vài tài nguyên trực tiếp từ lớp R ứng dụng Nhưng nói chung, nên sử dụng tài nguyên cung cấp trực tiếp ứng dụng Trong thực tế, người lập trình không nên sử 72 dụng tài nguyên drawable từ gói android, chúng thay đổi tảng, gây xung đột với thiết kế tảng Thông thường , styles tài nguyên mà người lập trình nên sử dụng trực tiếp từ nguồn tài nguyên Gói android.app cung cấp lớp phương thức để xây dựng ứng dụng, gói quan trọng hệ thống gói Android có từ Level với số thành phần cốt lõi ứng dụng là: Activity Service Ngoài gói định nghĩa tiện ích khác ứng dụng chẳng hạn như: dialogs, notifications, action bar Gói android.content chứa lớp dùng để truy cập xuất liệu thiết bị gồm loại chính: - Content sharing (android.content): chia sẻ liệu thành phần ứng dụng Các lớp quan trọng – ContentProvider ContentResolver: quản lý công bố liệu ổn định kết hợp với ứng dụng – Intent and IntentFilter: phân phối thông điệp có cấu trúc thành phần ứng dụng khác nhau, cho phép thành phần bắt đầu thành phần khác trả kết - Package management (android.content.pm): sử dụng cho việc truy cập thông tin xung quanh gói Android chẳng hạn gói apk, cung cấp thông tin xung quanh hoạt động, quyền truy cập, dịch vụ, chữ ký, cung cấp Lớp quan trọng để thực điều PackageManager - Resource management (android.content.res): quản lý việc lấy liệu nguồn tài nguyên liên kết với ứng dụng strings, drawables, media lấy chi tiết cấu hình thiết bị Lớp quan trọng để thực việc truy cập liệu Resources Gói android.database chứa lớp nghiên cứu liệu trả thông qua content provider Lớp android.database.sqlite quản lý liệu 73 sở liệu riêng Lớp sử dụng để quản lý đối tượng trỏ trả từ truy vấn content provider Cơ sở liệu tạo bắt đầu với phương thức openOrCreateDatabase(String, int, SQLiteDatabase.CursorFactory) Thực yêu cầu thông qua content providers, sử dụng lớp content.ContentResolver Tất sở liệu lưu trữ thiết bị /data/data//databases Gói android.widget chứa thành phần UI (chủ yếu hình ảnh) sử dụng hình ứng dụng, thiết kế riêng người Để tạo widget riêng, mở rộng lớp View lớp Còn để sử dụng widget XML layout, có thêm tệp tin tạo Sau danh sách tệp tin cần tạo để thực tùy chọn widget: - Java implementation file: tệp tin thực hành vi widget Nếu bạn khởi tạo đối tượng từ layout XML, bạn phải code khởi tạo (constructor) mà tìm kiếm tất - giá trị thuộc tính từ tệp tin layout XML XML definition file: tệp tin XML res/values/ để định nghĩa yếu tố XML sử dụng để khởi tạo widget, thuộc tính mà hỗ trợ Các ứng dụng khác sử dụng yếu tố thuộc tính - layout XML khác họ Layout XML [optional]: tệp tin XML tùy ý bên thư mục res/layout/ project mà mô tả việc bố trí widget bạn Và bạn làm điều code tệp tin java Ngoài số gói khác android.graphics: cung cấp công cụ đồ họa cấp thấp lọc màu (color filters), điểm (points), hình chữ nhật (rectangles) cho phép xử lý việc vẽ trực tiếp hình Gói android.location: chứa lớp xác định vị trí dựa liên kết dịch vụ Gói android.text: cung cấp giao diện phương thức cho phép thao tác chuỗi ứng dụng Gói android.view chứa thành phần tạo giao diện người dùng… 74 Gói Android.media Cung cấp lớp để quản lý giao diện media âm video Các API media sử dụng để chạy số trường hợp dùng để ghi âm lại file media Chúng bao gồm audio( chơi nhạc mp3 hay file nhạc định dạng khác, nhạc chuông, hiệu ứng âm trò chơi, âm DMTF) video( chơi video Web thẻ nhớ Sdcard) Các lớp đặc biệt khác gói cung cấp khả phát khuôn mặt người file ảnh Bitmaps (FaceDetector) điều khiển âm định tuyến (đến thiết bị tai nghe) kiểm soát báo động nhạc chuông điện thoại rung thông qua lớp AudioManager Android hỗ trợ đầu cho audio music thông qua lớp MediaPlayer Nó dùng để điều khiển việc chạy phát audio video Android hỗ trợ nhiều định dạng cho tệp tin âm thanh, âm nhạc máy ảo thiết bị thực tế: - WAV (PCM uncompressed) - AAC (Advanced Audio Coding) với định dạng tệp tin m4a (audio/m4a) or.3gp (audio/3gpp) AAC chuẩn phổ biến sử dụng cho Ipod máy nghe nhạc cầm tay khác Android hỗ trợ định dạng audio MPEG-4 3GP Ngoài AAC specification, High Efficiency AAC hỗ trợ - MP3 (MPEG-1 Audio Layer 3, mp3 (audio/mp3), files MP3) sử dụng nhiều hỗ trợ rộng rãi - WMA (Windows media audio) - AMR (Adaptive Multi-Rate) hỗ trợ đuôi 3gp (audio/3gpp) hay tệp tin amr (audio/amr) files AMR định dạng âm chuẩn hóa giọng nói sử dụng 3GPP(3rd Generation Partnership Project) - OGG (Ogg Vorbis) hỗ trợ tệp tin ogg (application/ogg) Ogg Vorbis định dạng mã nguồn mở phát hành miễn phí với chất lượng tương đương với AAC MP3 75 - MIDI (Instruments) Đó định dạng hỗ trợ lý thuyết thực tế có định dạng OGG, WAV MP3 làm việc tốt máy ảo Nguồn gốc định dạng âm Android xuất tần số 44.1kHz 16-bit stereo Tuy nhiên kể từ tệp tin WAV tốc độ lớn, tệp tin OGG MP3 sử dụng rộng rãi với mono cho giọng nói stereo cho music Tệp tin OGG làm việc tốt cho clip ngắn hiệu ứng âm trò chơi Lớp MediaPlayer Lớp MediaPlayer sử dụng để điều khiển việc phát lại tệp tin audio/video theo dòng chảy 3.1 Biểu đồ trạng thái Việc điều khiển phát lại tệp tin audio/video quản lý máy trạng thái Biểu đồ sau biểu vòng đời trạng thái đối tượng MediaPlayer điều khiển việc hỗ trợ hoạt động chơi, phát audio video Hình ovals đại diện cho trạng thái đối tượng MediaPlayer Các cung với đầu mũi tên tượng trưng cho việc gọi phương thức đồng bộ, cung có đầu mũi tên kép tượng trưng cho việc gọi phương thức không đồng 76 Một số trạng thái biểu đồ : – Khi đối tượng MediaPlayer vừa tạo lệnh new sau gọi phương thức reset(), lúc trạng thái Idle sau gọi phương thức release, trạng thái End Giữa hai trạng thái vòng đời đối tượng MediaPlayer – Nói chung, hoạt động điều khiển việc phát lại tệp tin audio/video thất bại vài lý sau: không hỗ trợ định dạng audio/video, việc đan xen audio/video nghèo nàn, độ phân giải cao, thời gian chờ Cơ cấu bên player đưa hỗ cho người sử dụng phương thức OnErrorListener.onError() OnErrorListener đăng ký trước thông setOnErrorListener(android.media.MediaPlayer.OnErrorListener) 77 qua – Việc gọi phương setDataSource(String), thức setDataSource(FileDescriptor, setDataSource(FileDescriptor), setDataSource(Context,Uri), long, long) chuyển đối tượng MediaPlayer trạng thái Idle sang trạng thái Initialized – Đầu tiên đối tượng MediaPlayer phải vào trạng thái Prepared trước việc phát lại bắt đầu – Để bắt đầu việc phát lại, phương thức start() phải gọi Sau gọi thành công start(), đối tượng MediaPlayer trạng thái Started Phương thức isPlaying() gọi để kiểm tra xem đối tượng MediaPlayer có trạng thái Started hay không – Việc phát lại tạm dừng, dừng hẳn, vị trí phát lại thời điều chỉnh Việc phát lại tạm dừng thông qua phương thức paused() Khi gọi phương thức paused() trả về, đối tượng MediaPlayer vào trạng thái Paused Chú ý việc chuyển từ trạng thái Started sang trạng thái Paused cố xảy không đồng máy nghe nhạc Nó cần chút thời gian trước trạng thái cập nhật việc gọi phương thức isPlaying() vài giây trường hợp cập nhật nội dung cách trực tiếp – Gọi phương thức stop() để dừng lại chuyển MediaPlayer từ trạng thái Started, Paused, Prepared PlaybackCompleted sang trạng thái Stopped – Gọi phương thức seekTo(int) để điều chỉnh vị trí phát lại • Mặc dù việc gọi phương thức không đồng seekTo(int) trả theo cách Thực tế hoạt động chuyển động lúc để kết thúc Khi chuyển động hoàn thành, chế bên player hỗ trợ người dùng phương thức OnSeekComplete.onSeekComplete() OnSeekCompleteListener đăng ký trước thông qua phương • thức setOnSeekCompleteListener(OnSeekCompleteListener) Chú ý phương thức seekTo(int) gọi trạng thái khác chẳng hạn Prepared, Paused, PlaybackCompleted 78 • Hơn nữa, thực tế vị trí phát lại thời đưa với việc gọi phương thức getCurrentPosition() – Khi phát lại đến cuối dòng, việc phát lại hoàn thành • Nếu vòng lặp phương thức setLooping(boolean) true, đối tượng MediaPlayer trì trạng thái • Started Nếu vòng lặp đặt false, chế player gọi phương thức callback hỗ trợ người dùng OnCompletion.onCompletion(), OnCompletionListener • đăng ký trước thông qua setOnCompletionListener(OnCompletionListener) Trong trạng thái PlaybackCompleted, việc gọi phương thức start() bắt đầu lại việc phát lại từ tệp nguồn audio/video 3.2 Trạng thái hợp lệ không hợp lệ Bảng sau cho biết số phương thức dùng phổ biến hai trạng thái hợp lệ không hợp lệ: Tên phương thức Trạng thái hợp lệ Trạng thái không hợp lệ Diễn giải getCurrentPosition {Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted} {Error} getDuration {Prepared, Started, Paused, Stopped, PlaybackCompleted} {Idle, Initialized, Error} Gọi thành công phương thức trạng thái hợp lệ không hợp lệ Error Gọi thành công phương thức trạng thái hợp lệ không thay đổi trạng thái Không hợp lệ chuyển đối tượng sang trạng thái Error 79 isPlaying {Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted} {Error} pause {Started, Paused} {Idle, Initialized, Prepared, Stopped, PlaybackC ompleted, Error} prepare {Initialized, Stopped} {Idle, Prepared, Started, Paused, PlaybackC ompleted, Error} release Bất kỳ {} reset {Idle, Initialized, Prepared, Started, Paused, Stopped, PlaybackCompleted, Error} {Prepared, Started, Paused, PlaybackCompleted} {} seekTo 80 {Idle, Initialized, Stopped, Error} Gọi thành công phương thức trạng thái hợp lệ không thay đổi trạng thái Không hợp lệ chuyển đối tượng sang trạng thái Error Gọi thành công trạng thái hợp lệ chuyển đối tượng sang trạng thái Paused Không hợp lệ chuyển đối tượng sang trạng thái Error Gọi thành công trạng thái hợp lệ chuyển đối tượng sang trạng thái Prepared Ngược lại ném ngoại lệ IllegalStateExcepti on Sau gọi phương thức release(), đối tượng không hiệu lực Sau gọi phương thức reset(), đối tượng giống lúc vừa tạo Gọi thành công phương thức trạng thái hợp lệ không thay đổi trạng thái Không hợp lệ chuyển đối tượng sang trạng thái Error setOnCompletionListe ner Bất kỳ {} setOnErrorListener Bất kỳ {} setVolume {Idle, Initialized, Stopped, Prepared, Started, Paused, PlaybackCompleted} {Error} start {Prepared, Started, Paused, PlaybackCompleted} {Idle, Initialized, Stopped, Error} stop {Prepared, Started, Stopped, Paused, PlaybackCompleted} {Idle, Initialized, Error} Phương thức gọi trạng thái việc gọi không làm thay đổi trạng thái đối tượng Giải thích tương tự setOnCompletionL istener Gọi thành công phương thức mà không thay đổi trạng thái Gọi thành công trạng thái hợp lệ chuyển đối tượng sang trạng thái Started Gọi thành công trạng thái hợp lệ chuyển đối tượng sang trạng thái Stopped Không hợp lệ chuyển đối tượng sang trạng thái Error 3.3 Quyền truy cập Để sử dụng lớp MediaPlayer ta phải khai báo quyền truy cập (permission) tệp tin AndroidMainfest.xml 81 – Internet Permisson (quyền truy cập Internet): dùng cho trường hợp sử dụng Mediaplayer chơi nhạc URL mạng Ta phải khai báo quyền truy cập sau: – Wake Lock Permission: ứng dụng nghe nhạc cần giữ hình chờ trạng thái ngủ (sleeping), sử dụng phương thức MediaPlayer.setScreenOnWhilePlaying() MediaPlayer.setWakeMode() Ta cần phải khai báo quyền truy cập sau: 3.4 Đăng ký thông tin kiện lỗi Ứng dụng muốn đăng ký thông tin kiện lỗi theo thứ tự để thông báo cập nhật cho vài trạng thái nội lỗi chạy xảy suốt trình phát lại Việc đăng ký lắng nghe kiện lỗi thích hợp thông qua việc gọi số phương thức sau: setOnSeekCompleteListener, setOnCompletionListener, setOnErrorListener, setOnPreparedListener, … Dưới đoạn code minh họa cho việc đăng ký bắt kiện lỗi đối tượng mp lớp MediaPlayer: public class MyService extends Service implements MediaPlayer.OnErrorListener { MediaPlayer mMediaPlayer; public void initMediaPlayer() { // initialize the MediaPlayer here mMediaPlayer.setOnErrorListener(this); } @Override public boolean onError(MediaPlayer mp, int what, int extra) { // react appropriately // The MediaPlayer has moved to the Error state, must be reset! } } 82 Demo ứng dụng MusicPlayer Ứng dụng Menu máy điện thoại Android ảo 2.2: List nhạc sau khởi chạy ứng dụng: Giao diện ứng dụng phát hát list: 83 KẾT LUẬN Hệ điều hành Android tảng cho di động với tính ưu việt trội Sau gần năm phát triển Android khẳng định vị thị trường di động việc phát triển ứng dụng chạy quan tâm giới nói chung việt nam nói riêng Đồ án “Xây dựng ứng dụng nghe nhạc hệ điều hành Android” đề tài không lớn ứng dụng phổ biến điện thoại ngày Qua trình làm đề tài lần giúp em có thêm kiến thức Android đồng thời nắm lập trình ứng dụng Android Kết đạt được: tìm hiểu hệ điều hành Android thực xây dựng demo ứng dụng nghe nhạc sử dụng ngôn ngữ lập trình Java tảng Android 84 Hạn chế: ứng dụng đơn giản, hỗ trợ chạy đươc tệp tin mp3 mà không chạy tệp tin âm có định dạng khác, chưa bố trí nút để thị trực tiếp List nhạc, chưa thử nghiệm thực tế máy điện thoại chạy Android thật Hướng phát triển: khắc phục hạn chế trên, tạo ứng dụng hoàn chỉnh giao diện chức năng, chạy máy điện thoại thật đồng thời bổ sung thêm nhiều chức tìm kiếm hát danh sách nhạc, ghi âm, chạy định dạng video, … 85 TÀI LIỆU THAM KHẢO Website: http://developer.android.com/ Ebook Learning Android.pdf O’REILLY Ebook ebook_Hello_Android_2nd_Edition.pdf Ebook help_android_media.pdf … 86 ... án Xây dựng ứng dụng nghe nhạc hệ điều hành Android Nội dung đồ án em gồm chương: Chương 1: Tổng quan hệ điều hành Android Chương trình bày lịch sử phát triển, ưu kiến trúc hệ điều hành Android. .. chứa hệ điều hành có khả chạy ứng dụng máy tính Có thể nói hệ điều hành tảng ứng dụng làm phong phú cho tảng Android OS hệ điều hành điện thoại di động phát triển Google dựa tảng Linux Việc xây dựng. .. tự ứng dụng nghe nhạc Chương 4: Thiết kế ứng dụng Chương trình bày chi tiết quy trình thiết kế ứng dụng MusicPlayer eclipse CHƯƠNG TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID Giới thiệu chung hệ điều hành

Ngày đăng: 23/04/2017, 10:08

Từ khóa liên quan

Mục lục

  • NHIỆM VỤ CỦA ĐỒ ÁN

  • LỜI CẢM ƠN

  • LỜI CAM ĐOAN

  • LỜI NÓI ĐẦU

  • CHƯƠNG 1

  • TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID

    • 1. Giới thiệu chung về hệ điều hành Android

    • 2. Máy ảo Dalvik trong Android

    • 3. Kiến trúc của Android

      • 3.1. Tầng hạt nhân Linux (Linux Kernel layer)

      • 3.2. Tầng Library và android runtime

      • 3.3. Tầng Application Framework

      • 3.4. Tầng ứng dụng(application)

      • 1. Các thành phần trong Android Project

        • 1.1. Thành phần Manifest File

        • 1.2. Thành phần Layout XML Code

        • 1.3. Thành phần String

        • 1.4. Thành phần R.java

        • 1.5. Thành phần Java Source Code

        • 2. Các khối chính cấu thành nên ứng dụng của Android

          • 2.1. Activity

          • 2.2. Intents

          • 2.3. Services

          • 2.4. Content Providers

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

Tài liệu liên quan