Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Tạo một Ứng dụng Chơi nhạc trên Android: Thiết lập Dự án

by
Difficulty:BeginnerLength:LongLanguages:

Vietnamese (Tiếng Việt) translation by Dai Phong (you can also view the original English article)

Nền tảng Android cung cấp các nguồn tài nguyên cho việc phát nhạc, ứng dụng của bạn có thể sử dụng chúng để tạo ra một giao diện giữa người dùng và các bài nhạc. Trong loạt bài hướng dẫn này, chúng ta sẽ tạo ra một ứng dụng chơi nhạc cơ bản dành cho Android. Ứng dụng sẽ trình bày một danh sách các bài hát trên thiết bị của người dùng, cho phép người dùng có thể chọn các bài hát để chơi. Ứng dụng cũng sẽ hiển thị các điều khiển để tương tác với bài hát và sẽ tiếp tục chơi khi người dùng chuyển sang ứng dụng khác, với một thông báo hiển thị khi qua một bài hát khác.

Giới thiệu

Xây dựng ứng dụng chơi nhạc sẽ liên quan đến việc sử dụng lớp ContentResolver để lấy các bài nhạc trên thiết bị, lớp MediaPlayer để chơi nhạc và lớp MediaController điều khiển việc phát nhạc. Chúng ta cũng sẽ sử dụng một đối tượng Service để phát nhạc khi người dùng không trực tiếp tương tác với ứng dụng. Bạn có thể dễ dàng hoàn thành loạt bài này nếu bạn là một nhà phát triển Android khá, do đó, nếu bạn đã từng xây dựng một vài ứng dụng, thì loạt bài này không thành vấn đề đối với bạn. Dưới đây là một bản xem trước của ứng dụng hoàn chỉnh:

Android Music Player

Trong hướng dẫn này, chúng ta sẽ tạo ra ứng dụng và truy vấn thiết bị dùng để tìm các tập tin âm thanh bằng cách sử dụng các lớp ContentResolverCursor. Trong phần tiếp theo, chúng ta sẽ sử dụng một đối tượng Adapter để trình bày các bài hát trong một danh sách, bắt đầu phát nhạc khi người dùng chạm vào một bài hát trong danh sách. Trong phần cuối cùng của loạt bài này, chúng ta sẽ sử dụng lớp MediaController để cung cấp cho người dùng kiểm soát việc phát nhạc, thực hiện các chức năng chuyển sang bài kế tiếp và quay trở lại, và bao gồm một chức năng xáo trộn bài hát. Sau loạt bài này, chúng ta sẽ khám phá các khía cạnh khác của việc phát nhạc mà có thể cải thiện ứng dụng, chẳng hạn như xử lý âm thanh tập trung, trình bày các bài hát theo nhiều cách khác nhau và chơi các bài trực tuyến.

1. Tạo và Cấu hình một Dự án mới

Bước 1

Tạo một dự án Android mới. Nếu bạn đang sử dụng Eclipse, thì hãy để cho IDE (Integrated Development Environment) tạo ra một lớp Activity và tập tin layout chính cho bạn. Đối với một số code mà chúng ta sử dụng trong loạt bài này, bạn sẽ cần API Level tối thiểu là 16, do đó, bạn sẽ cần phải thực hiện các bước bổ sung để hỗ trợ các phiên bản cũ. Một khi dự án của bạn đã được tạo ra, hãy mở tập tin Manifest của dự án. Bên trong phần tử manifest, thêm quyền sau đây:

Chúng ta sẽ sử dụng quyền này để cho trình phát nhạc tiếp tục khi thiết bị của người dùng chuyển sang chế độ idle. Manifest của bạn chắc hẳn đã chứa một phần tử cho lớp Activity chính của bạn. Thêm các thuộc tính sau vào phần tử Activity để thiết lập screenOrientationlaunchMode:

Để đơn giản, chúng ta sẽ chỉ cho ứng dụng nằm thẳng đứng. launchMode sẽ hỗ trợ quá trình điều hướng trở lại ứng dụng sau khi chuyển ra khỏi nó. Chúng ta sẽ hiển thị một thông báo cho biết bài hát hiện đang được phát, chạm vào thông báo sẽ đưa người dùng quay lại ứng dụng. Chúng ta cũng sẽ sử dụng một lớp Service để phát nhạc. Thêm dòng sau đây vào Manifest của dự án bên trong phần tử application và sau phần tử activity:

Thay đổi tên gói để phù hợp với cái của bạn và thay đổi tên lớp nếu bạn muốn.

Bước 2

Mở tập tin layout chính của dự án và thay thế nội dung của nó với layout sau đây:

Đảm bảo rằng bạn thay đổi thuộc tính tools:context nếu lớp Activity chính được đặt tên khác. Layout bao gồm một ListView trong đó chúng ta sẽ trình bày danh sách bài hát.

Chúng ta sẽ bao gồm hai phần tử menu để bật tắt chức năng xáo trộn bài hát và thoát khỏi ứng dụng. Mở tập tin menu chính của bạn (res/menu/main.xml) và thay thế nội dung của nó với những cái sau đây:

Nếu bạn thích, bạn có thể lưu trữ các chuỗi tiêu đề trong tập tin res/values/strings.xml. Hai phần tử tham chiếu đến các tập tin drawable. Tạo của riêng bạn hoặc sử dụng hai hình ảnh này:

Android Music Player Random Button
Android Music Player End Button

Chúng ta cũng sẽ sử dụng một biểu tượng để hiển thị trong thông báo. Tạo một cái ngay bây giờ hoặc sử dụng cái dưới đây:

Android Music Player Play Button

Code sẽ tham chiếu đến các hình ảnh bằng cách sử dụng các tên rand, endplay vì vậy hãy đảm bảo rằng bạn sử dụng các tên tập tin tương tự. Sao chép các hình ảnh của dự án vào thư mục drawables. Chúng ta sẽ cài đặt các hành động sau.

2. Truy vấn Thiết bị để tìm kiếm Bài hát

Bước 1

Hãy truy vấn thiết bị của người dùng để tìm các tập tin âm thanh. Đầu tiên, thêm một lớp mới vào dự án của bạn, đặt tên cho nó là Song. Chúng ta sẽ sử dụng lớp này cho mô hình dữ liệu của một tập tin âm thanh. Bên trong khai báo lớp, thêm 3 biến đối tượng cho dữ liệu mà chúng ta muốn lưu trữ cho mỗi ca khúc:

Sau đó, thêm một phương thức xây dựng, trong đó chúng ta khởi tạo các biến đối tượng:

Cuối cùng, thêm các phương thức get cho các biến đối tượng:

Nếu bạn có ý định sử dụng thông tin bài hát, thì bạn có thể tự do thêm các biến đối tượng khác vào lớp.

Bước 2

Mở lớp Activity chính và thêm các dòng import sau đây:

Khai báo các biến đối tượng sau đây trước phương thức onCreate:

Chúng ta sẽ lưu trữ các bài hát trong một danh sách và hiển thị chúng trong đối tượng ListView trong layout chính. Trong onCreate, sau khi thiết lập content view, lấy đối tượng ListView sử dụng ID mà chúng ta đã đặt cho nó trong layout chính:

Khởi tạo danh sách như hình dưới đây:

Tiếp theo, trong định nghĩa lớp Activity chính, sau các phương thức hiện có, tạo một phương thức helper để lấy thông tin của tập tin âm thanh:

Bên trong phương thức này, tạo một đối tượng ContentResolver, truy vấn URI cho các bản nhạc bên ngoài, và tạo một đối tượng Cursor bằng cách sử dụng đối tượng ContentResolver để truy vấn các bản nhạc:

Bây giờ chúng ta có thể lặp qua kết quả, trước tiên kiểm tra rằng chúng ta đã có dữ liệu hợp lệ:

Trước tiên, chúng tôi lấy chỉ số cột cho các mục dữ liệu mà chúng ta quan tâm đến cho mỗi bài hát, sau đó chúng ta sử dụng những cái này để tạo ra một đối tượng Song mới và thêm nó vào danh sách, trước khi tiếp tục lặp qua các kết quả.

Quay lại trong onCreate, sau code mà chúng ta đã thêm, hãy gọi phương thức mới này:

3. Hiển thị các Bài hát

Bước 1

Bây giờ chúng ta có thể hiển thị danh sách các bài hát trong giao diện người dùng. Trong phương thức onCreate, sau khi gọi phương thức helper mà chúng ta đã tạo ra mới đây, hãy sắp xếp dữ liệu để các bài hát được trình bày theo thứ tự ABC:

Chúng ta sử dụng biến title trong lớp Song, sử dụng các phương thức get được chúng ta thêm vào, để cài đặt một phương thức compare, sắp xếp bài hát theo tên.

Bước 2

Hãy xác định một layout để biểu diễn cho mỗi bài hát trong danh sách. Thêm một tập tin mới vào thư mục res/layout của dự án, đặt tên nó là song.xml và nhập vào như sau:

Hãy thoải mái sửa đổi layout cho phù hợp với sở thích của bạn. Mỗi bài hát trong danh sách sẽ được đại diện bởi văn bản tiêu đề và nghệ sĩ, do đó, chúng ta sẽ sử dụng các TextView để hiển thị các dữ liệu này. Chú ý rằng thẻ mở của LinearLayout liệt kê một thuộc tính onClick. Chúng ta sẽ sử dụng phương thức này trong lớp Activity chính để đáp ứng hành động người dùng chạm vào các bài hát trong danh sách, phát bài hát đại diện bởi mục đã được chạm vào.

Bước 3

Chúng ta sẽ sử dụng một Adapter để ánh xạ các bài hát vào ListView. Thêm một lớp mới vào ứng dụng của bạn, đặt tên nó là SongAdapter hoặc một cái tên khác tuỳ theo bạn chọn. Khi tạo lớp, hãy thừa kế từ lớp cha android.widget.BaseAdapter. Eclipse sẽ chèn các code cơ bản sau đây:

Bạn sẽ cần phải thêm các dòng import sau đây:

Bên trong khai báo lớp, khai báo các biến đối tượng sau đây:

Chúng ta sẽ truyền danh sách các bài hát từ lớp Activity chính và sử dụng LayoutInflater để ánh xạ các chuỗi tiêu đề và nghệ sĩ vào các TextView trong layout bài hát mà chúng ta đã tạo ra.

Sau các biến đối tượng, hãy cung cấp cho adapter một phương thức xây dựng để khởi tạo chúng:

Thay đổi nội dung của phương thức getCount để trả về kích thước của danh sách:

Bạn có thể giữ nguyên phương thức getItemgetItemId. Cập nhật cài đặt phương thức getView như dưới đây:

Chúng ta thiết lập tiêu đề và nghệ sĩ bằng cách truy xuất đối tượng Song phù hợp từ danh sách bằng cách sử dụng chỉ số index, ánh xạ các chuỗi sang các View mà chúng ta đã thêm vào tập tin layout của bài hát. Chúng ta cũng thiết lập vị trí như là thẻ view, điều đó sẽ cho phép chúng ta phát đúng bài hát khi người dùng nhấp vào một mục trong danh sách. Hãy nhớ rằng tập tin layout song.xml bao gồm một thuộc tính onClick. Chúng ta sẽ sử dụng phương thức được liệt kê ở đó để truy vấn cái thẻ trong Activity.

Bước 3

Quay trở lại trong lớp Activity chính, phương thức onCreate sau sắp xếp danh sách, hãy tạo ra một đối tượng mới của lớp Adapter và đặt nó trên ListView:

Khi bạn chạy ứng dụng, nó sẽ hiển thị danh sách các bài hát trên thiết bị, nhấp vào chúng sẽ làm cho ứng dụng sinh ra một ngoại lệ ở thời điểm này, nhưng chúng ta sẽ cài đặt trình xử lý cho sự kiện click trong bài hướng dẫn tiếp theo.

Tóm tắt

Bây giờ, chúng ta đã thiết lập ứng dụng để đọc các bài hát từ thiết bị của người dùng. Trong phần tiếp theo, chúng ta sẽ bắt đầu phát nhạc khi người dùng chọn một bài hát bằng cách sử dụng lớp MediaPlayer. Chúng ta sẽ cài đặt việc phát nhạc bằng cách sử dụng một lớp Service để nó sẽ tiếp tục khi người dùng chuyển sang tương tác với các ứng dụng khác. Cuối cùng, chúng ta sẽ sử dụng một lớp MediaController để cho phép người dùng kiểm soát việc phát nhạc.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.