Do đó việcxây dựng các ứng dụng cho điện thoại di động đang là một ngành công nghiệpmới đầy tiềm năng và hứa hẹn nhiều sự phát triển vượt bậc của ngành khoahọc kỹ thuật.. Ngàynay, với
Trang 1ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN
THÔNG VIỆT-HÀN
ĐỒ ÁN CƠ SỞ 3
ĐỀ TÀI: MUSIC APP
Sinh viên thực hiện : NGUYỄN SỸ HUY
Giảng viên hướng dẫn : TS LÊ VĂN MINH
Trang 2Đà nẵng, tháng … năm …
2
Trang 3ĐẠI HỌC ĐÀ NẴNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN
THÔNG VIỆT-HÀN
ĐỒ ÁN CƠ SỞ 3
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 4Đà Nẵng, tháng … năm …
4
Trang 5MỞ ĐẦU
Hiện nay Công nghệ thông tin vô cùng phát triển thì mọi người đều sửdụng máy vi tính hoặc điện thoại di động để làm việc và giải trí Do đó việcxây dựng các ứng dụng cho điện thoại di động đang là một ngành công nghiệpmới đầy tiềm năng và hứa hẹn nhiều sự phát triển vượt bậc của ngành khoahọc kỹ thuật Phần mềm, ứng dụng cho điện thoại di động hiện nay rất đadạng và phong phú trên các hệ điều hành di động Các hệ điều hành J2ME,Adroid, IOS, Hybrid, Web bases Mobile Application đã rất phát triển trên thịtrường truyền thông di động Trong vài năm trở lại đây, hệ điều hành Adroid
ra đời với sự kế thừa những ưu việt của các hệ điều hành ra đời trước và sựkết hợp của nhiều công nghệ tiên tiến nhất hiện nay Adroid đã nhanh chóng
là đối thủ cạnh tranh mạnh mẽ với các hệ điều hành trước đó và đang là hệđiều hành di động của tương lai và được nhiều người ưa chuộng nhất Ngàynay, với sự phát triển nhanh chóng của xã hội, nhu cầu giải trí thông qua điệnthoại di động ngày càng phổ biến, vì vậy em đã chọn đề tài “Music App” vớimục đích nghiên cứu, tìm hiểu về ứng dụng nghe nhạc trên android để có thểđáp ứng nhu cầu giải trí đó, giúp cho mọi người có thể thư giãn thông qua ứngdụng một cách dễ dàng
Trang 6đỡ em trong những năm qua và trong suốt quá trình thực hiện đồ án này Em xinchân thành cảm ơn! Đà Nẵng, ngày 25 tháng 07 năm 2020 Sinh viên Nguyễn SỹHuy
Trang 7NHẬN XÉT
(Của cơ quan thực tập, nếu có)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 8NHẬN XÉT (Của giảng viên hướng dẫn)
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
8
Trang 9
MỤC LỤC Trang MỞ ĐẦU 3
LỜI CẢM ƠN 4
NHẬN XÉT 5
NHẬN XÉT 6
Chương 1 Giới thiệu 10
1.1 Hệ điều hành 10
1.2 Giới thiệu ứng dụng Android studio 10
1.3 Giới thiệu máy ảo 11
1.4 Giới thiệu tổng quan 11
1.5 Phương pháp triển khai 11
1.6 Tổng quát hạn chế và cách khắc phụ 12
Chương 2 Phân tích thiết kê hệ thống 13
2.1 Mô hình tổng quan 13
2.2 Sơ đồ Use-case 13
2.3 Sơ đồ hoạt động 14
Chương 3 Triển khai xây dựng 15
3.1 Phát biểu bài toán 15
3.2 Các chức năng của chương trình 15
3.3 Cơ sở dữ liệu 15
3.4 Media Player trong Android 16
3.5 Trạng thái phát nhạc 16
3.6 Callsback 17
3.7 Các thư viện sử dụng thêm 17
Chương 4 Triển khai xây dựng 18
3.1 Giao diện màn hình chính 18
3.1 Giao diện phát nhạc 18
KẾT LUẬN 19
DANH MỤC TÀI LIỆU THAM KHẢO 20
Trang 10DANH MỤC HÌNH
Trang
Hình 1.1 – Nhãn hình 1 11
Hình 1.2 – Nhãn hình số 2 11
Hình 2.1 – Sơ đồ ứng dụng 13
Hình 2.2 – Use-case tổng quát 13
Hình 2.3 – Sơ đồ hoạt động 14
Hình 3.1 – Bảng bài hát 15
Hình 3.2 – Bảng hoạt động của Media Player 16
Hình 4.1 – Màn hình chính 18
Hình 4.2 – Màn hình phát nhạc 18
10
Trang 12Chương 1 Giới thiệu
1.1 Hệ điều hành Android
Android là một hệ điều hành dựa trên nền tảng Linux, được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗtrợ tài chính từ Google và sau này được chính Google mua lại vào năm 2005 Chính mã nguồn mở của Android cùng với tính không ràng buộc nhiều đã cho phép các nhà phát triển thiết bị di động và các lập trình viên được điều chỉnh và phân phối Android một cách tự do Ngoài ra, Android còn có một cộng đồng lập trình viên đông đảo chuyên viết các ứng dụng để mở rộng chức năng của thiết bị Nhờ yếu tố mở, dễ dàng tinh chỉnh cùng sự phát triển nhanh chóng đã khiến hệ điều hành này dần trở nên phổ biến, kết quả là mặc dù được thiết kế để chạy trên điện thoại và máy tính bảng nhưng giờ đây Android đã xuất hiện trên các smart
TV, máy chơi game và một số thiết bị điện tử khác Android bắt đầu với bản beta đầu tiên vào tháng 11 năm 2007 và phiên bản thương mại đầu tiên, Android 1.0, được phát hành vào tháng 9 năm 2008 Kể từ tháng 4 năm 2009, phiên bản
Android được phát triển, đặt tên theo chủ đề bánh kẹo và phát hành theo thứ tự bảng chữ cái: Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Bean, Kitkat, Lollipop, Marshmallow, Nougat, và bây giờ
là Oreo Kỷ nguyên của Android chính thức bắt đầu vào ngày 22 tháng 10 năm
2008, khi chiếc điện thoại T-Mobile G1 bắt đầu được bán ra tại Mỹ Vào thời gian đầu, rất nhiều tính năng cơ bản bị thiếu sót như: bàn phím ảo, cảm ứng đa điểm và tính năng mua ứng dụng vẫn chưa xuất hiện Tuy nhiên, một số tính năngcũng như giao diện đặc sản của hệ điều hành này đã khởi nguồn từ chiếc G1 và trở thành những yếu tố không thể thiếu trên Android sau này Sự phát triển của hệđiều hành Android
1.2 Giới thiệu ứng dụng android studio
Android Studio là một nền tảng IDE1 (integrated developmentenvironment) dùng để phát triển các ứng dụng android, được Google release vàokhoảng đầu năm 2015 thay thế cho bản Eclipse cũ Android Studio được pháttriển dựa trên IntelliJ IDEA Community Edition - công cụ lập trình tốt nhất chojava, giúp cho các lập trình viên tạo ứng dụng, thực hiện các thay đổi một cách dễdàng, bên cạnh đó có thể xem trước trong thời gian thực và thiết kế giao diện đẹphơn trước Tiếng Việt cũng đã được tích hợp trong Android Studio Đặc biệt,Android Studio cho phép người dùng Import Project từ Eclipse sang và logic lậptrình cũng tương tự
12
Trang 13Hình 1.1 – Nhãn hình 11.3 Máy ảo Android Genymotion
Dowload: https://www.genymotion.com/fun-zone/
Hình 1.2 – Nhãn hình số 2
1.4 Giới thiệu tổng quan về Music App
Nghe nhạc trên điện thoại là một trong các nhu cầu phổ biến của người dùng , nó giúp thư giãn và làm việc hiệu quả hơn Chương trình nghe nhạc
thường được tích hợp sẵn trên điện thoại Tuy nhiên việc tự xây dựng ứng dụng
Trang 141.6 Hạn chế, tồn tại của các phương pháp
Khi xây dựng ứng dụng “Music App” thì cũng có một số hạn chế mà người dùng không thể nào làm được:
Tự động tắt, phát nhạc
Xem thông tin của ca sĩ, người thực hiện
Vì thời gian quá gấp rút nên ứng dụng còn nhiều thiếu xót và hạn chế Em sẽ khắc phục sớm nhất có thể
14
Trang 15Chương 2 Phân tích thiết kế hệ thống
2.1 Mô hình tổng quan của hệ thống nghiên cứu
Hình 2.1: Sơ đồ ứng dụng
2.2 Sơ đồ Use-Case của chương trình
Trang 162.3 Sơ đồ hoạt động của chương trình
Hình 2.3: Sơ đồ hoạt động
16
Trang 17Chương 3 Triển khai xây dựng
3.1 Phát biểu bài toán
Nghe nhạc trên điện thoại là một trong các nhu cầu giải trí phổ biến của ngườidùng, nó giúp thư giãn và làm việc hiệu quả hơn Chương trình nghe nhạc thườngđược tích hợp sẵn trên điện thoại, tuy nhiên nó thường chỉ được phát được các file bài hát lưu trữ cục bộ trên điện thoại Việc lưu trữ kho nhạc cục bộ có thể dẫnđến: tốn dụng lượng bộ nhớ, các bài hát nhanh chóng trở nên cũ và không muốn nghe… Việc xây dựng ứng dụng nghe nhạc online giúp người dùng có thể nghe thoải mái các bài hát mới liên tục và không phải băn khoăn về không gian lưu trữ
3.2 Các chức năng của chương trình
Hiển thị các bài hát, ca sĩ
Tìm kiếm bài hát
Phát bài hát theo tìm kiếm
Thêm bài hát vào danh sách yêu thích
3.3 Cơ sở dữ liệu
Bảng bài hát
Trang 183.5 Trạng thái phát nhạc
Hình 3.2: Trạng thái của MediaPlayer
Trạng thái của MediaPlayer Chúng ta có thể thấy được các trạng thái sau là cáctrạng thái mà media có thể ở đó:
- Idle : Trạng thái ban đầu của Media Player Khi muốn trở về trạng thái ban đầucủa MediaPlayer thì có thể sử dụng phương thức reset()
- Initialized: trạng thái đã khởi tạo được dữ liệu bên trong Media Player bằngphương thức setDataSource(Uri uri) Việc truyền vào Uri này có thể là ở localhoặc là ở server đều có thể play được
- End: Trạng thái kết thúc MediaPlayer khi hàm release() được gọi Đến đâyMediaPlayer hoàn toàn bị hủy bỏ khi không sử dụng nữa
- Error: Trạng thái lỗi nếu việc play có vấn đề gì đó với Uri hoặc việc tương tácvới nhạc trên internet gặp vấn đề Lắng nghe listener OnErrorListener để xử lýkhi không thể play nhạc
- Prepared: Trạng thái đã được chuẩn bị để sẵn sàng để có thể play hoặc là trạngthái khi stop hoặc là seekTo() đến khoảng nào đó trong toàn bộ độ dài của media.Việc đến được trạng thái này chúng ta phải trải qua hàm đồng bộ prepareAsync()hoặc là không đồng bộ prepare() Nếu gọi hàm đồng bộ prepareAsync() thì sẽ có
1 listener được trả về nếu mà quá trình chuẩn bị thành công thì sẵn sàng để play.Chỗ này có thể gửi sự kiện chuẩn bị xong ra ngoài giao diện để cập nhật đượcgiao diện phù hợp
- Started: Trạng thái khi mà media đang được chạy, lúc này có thể sử dụngpause() để tạm dừng nhạc hoặc stop() để dừng hẳn nhạc của media GọiisPlaying() để biết được media có đang được chạy không
- Pause: Khi media đang chạy, gọi hàm pause() để dừng media khi đang phátnhạc Lúc này trạng thái media đang tạm dừng Có thể dừng hẳn bằng hàm stop()hoặc start() để chạy media Thường dùng cho nút play/pause gọi hàm này để thựchiện việc quản lý media
18
Trang 19- Stop: Khi đang ở trạng thái dừng hẳn, có thể chạy lại media bằngprepareAsync() hoặc là prepare() để có thể trở về trạng thái Prepared và chuẩn bị
để play lại từ đầu
- Playback Complete: Trạng thái mà chạy xong media sẽ nhảy vào đây, có thểlắng nghe sự kiện OnCompletionListener của nó để có thể thực hiện chuyển bàihoặc là vẫn play bài đó với các trường hợp của loop media
Ngoài ra còn hàm seekTo() để có thể chuyển đến phần mà bạn chọn khiplay media Hàm này có thể được gọi ở nhiều trạng thái khác nhau nên phải chú ýtới từng trạng thái của Media khi gọi hàm này Việc cho biết chạy đến đâu củatổng số thời gian được trả về thông qua hàm getCurrentPosition()
setOnSeekCompleteListener(OnSeekCompleteListener): Lắng nghe sựkiện khi di chuyển seekbar hỗ trợ bởi MediaPlayer
setOnCompletionListener(OnCompletionListener): Lắng nghe sự kiện khiplay xong một media, sử dụng để có thể quy định việc tiếp theo nó sẽ làm làplay lại hay play bài hát khác
setOnBufferingUpdateListener(OnBufferingUpdateListener): Lắng nghe
sự kiện thay đổi của bộ đệm khi play media online
setOnInfoListener(OnInfoListener): Lắng nghe sự kiện khi có thông tinhoặc cảnh báo
setOnErrorListener(OnErrorListener): Lắng nghe sự kiện nếu xảy ra lỗikhi play media
3.7 Các thư viện sử dụng thêm
- Glide 4.7.1: Thư viện hỗ trợ load ảnh từ url trên Android
- Gson 2.8.5: Thư viện java cho phép người sử dụng có thể chuyển đổi từ một đối tượng Java sang JSON và cũng có thể chuyển đổi từ một đối tượng JSON sang java
Trang 20Chương 4 Chương trình thử nghiệm
Trang 21Kết luận
Sau một thời gian tìm hiểu đề tài “Music App” em đã thực hiện được nội dung đề tài của theo yêu cầu đặt ra.Với mục đích là tìm hiểu về hệ điều hành Android, hiểu biết về ngôn ngữ lập trình mới cho điện thoại di động Android và tìm hiểu các ứng dụng của hệ điều hành Android trong thế giới di động ngày nay Thông qua việc tìm hiểu và nắm bắt lý thuyết về hệ điều hành Android, bước đầu
đã xây dựng thành công chương trình thực nghiệm với các chức năng cơ bản Trong quá trình tìm hiểu lý thuyết về hệ điều hành Android và xây dựng ứng dụng nghe nhạc online em đã thu được kết quả sau:
- Hiểu và sử dụng được các lớp đối tượng, phương thức hỗ trợ lập trình trên nền hệ điều hành Android
- Hiểu được định dạng dữ liệu và cơ chế làm việc với JSON
- Hiểu được các thành phần của Webservice
- Xây dựng thành công ứng dụng Demo với các chức năng nghe nhạc trực tuyến, tìm kiếm bài hát và hiển thị bài hát theo các mục
- Đóng gói ứng dụng thành file apk cho phép cài đặt trên điện thoại
Android
Do thời gian có hạn cùng với kiến thức của bản thân còn hạn chế nên em chưa tìm hiểu sâu về các kiến thức liên quan tới hệ điều hành Android nên chương trình vẫn còn rất nhiều hạn chế, em sẽ cố gắng phát triển thêm để chương trình thân thiện, dễ sử dụng và nhiều chức năng hơn
Trang 22https://vi.wikipedia.org/wiki/Android_(hệ_điều_hành) http://laptrinhandroid.vn/media-player-trong-android
http://khoapham.vn/KhoaPhamTraining/android/snipet/
https://techtalk.vn/kien-truc-cua-he-dieu-hanh-android.html
https://o7planning.org/vi/10405/huong-dan-cai-dat-va-cau-hinh-android-studio https://vovanhai.wordpress.com /web-services/giới-thiệu-về-web-service/ -
22