ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CƠNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
Báo cáo đồ án cuối kỳ
[ỨNG DỤNG NGHE NHẠC BẰNG SWIFT]
Giảng viên hướng dẫn: ThS. Thái Thụy Hàn Uyển
Sinh viên thực hiện:
Nguyễn Thanh Hoàng -
17520514
Lê Việt Bách
17520261
-
Lớp: NT118.K11.MMCL
Môn học: Đồ án 2
TP HCM, Ngày 01 tháng 1 năm 2021
1
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
LỜI MỞ ĐẦU
Thời nay xã hội ngày càng tiến bộ, nền tảng công nghệ thông tin
phát triển mạnh mẽ cùng với sự ra đời của nhiều thiết bị di động như
điện thoại, máy tính bảng,… ngày càng được ưa chuộng và khơng thể
thiếu trong cuộc sống. Do đó việc xây dựng ứng dụng cho các thiết bị
trên ngày càng được nhiều người quan tâm. Các ứng dụng dựa trên
nền tảng là hệ điều hành cho thiết bị di động ngày càng phong phú,
đáp ứng được nhiều nhu cầu sống cho xã hội.
Nắm bắt được những cơ hội cung cấp các sản phẩm giải trí,
nhóm em quyết định chọn xây dựng một ứng dụng nghe nhạc với mục
đích đem lại cho những người yêu thích âm nhạc những tác phẩm
nghệ thuật phù hợp với mọi lứa tuổi.
Chúng em đã làm xong đề tài này, chắc chắn khơng tránh khỏi
nhiều thiếu xót, rất mong được sự đóng góp đóng góp ý kiến của thầy
cơ và các bạn.
Chúng em chân thành cảm ơn !
2
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
NHẬN XÉT CỦA GIẢNG VIÊN
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
……..…………………………………..
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
…………………………………………………………………………
………………………………………..………………..
…………………………………………………………………………
3
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
…………………………………………………………………………
………………………………………
4
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
Mục lục
5
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
CHƯƠNG I: GIỚI THIỆU CHUNG ĐỀ TÀI ĐỒ ÁN
“ỨNG DỤNG DI ĐỘNG”
1.Lý do chọn đề tài
Âm nhạc là món ăn tinh thần không thể thiếu của những người yêu âm
nhạc. Với công nghệ ngày càng phát triển, việc cho ra đời nhiều ứng
dụng nghe nhạc rất hữu ích và tiện lợi đối với người nghe nhạc. Vừa tiết
kiệm được thời gian lại tiết kiệm được tiền bạc. Đối với nghệ sĩ, họ sẽ
chạy được quảng cáo về sản phẩm của họ cho công chúng một cách
tiện lợi hơn và nhờ vậy nghệ sĩ họ sẽ càng có thể gây chú ý nhiều hơn
cho tên tuổi của họ.
2.Phân tích hệ thống
o
Các tác nhân :
Người sử dụng (user)
o
Các use case:
o Tìm kiếm
o Nghe nhạc (Online/ Offline)
o u thích (Thêm vào Playlist)
Mơ tả bài tốn
Ứng dụng bao gồm các chức năng chính sau:
o
o
Nghe nhạc
Tìm kiếm
Khi truy cập vào ứng dụng, người dùng có thể xem các thơng tin theo
từng mục và nghe nhạc miễn phí.
Đặc tả hệ thống:
Người dùng chọn 1 trong những chức năng sau của chương trình đề
thực hiện.
o
Tìm kiếm bài hát: Người dùng có thẻ xem thơng tin bài hát, thể loại
hoặc ca sĩ mà họ muốn nghe. Khi người dùng nhập tên bài hát
trong khung tìm kiếm và chạm vào biểu tượng tìm kiếm, hệ thống
6
ỨNG DỤNG NGHE NHẠC
o
GVHD: ThS. Thái Thụy Hàn Uyển
sẽ cho ra bài hát có tên giống với tên mà người dùng nhập và cho
người dùng chọn bài hát đó.
Nghe nhạc : Cho phép người dùng nghe được bài hát được chọn.
Người dùng có thể tạm dừng, tiếp tục, xem lyric, xem lại playlist,
chuyển bài.
• Kết luận:
Bài tốn đặt ra là:
- Xây dựng ứng dụng cho phép người sử dụng điện thoại Iphone
có thể tìm kiếm nhạc, nghe nhạc và tải nhạc về điện thoại.
- Là ứng dụng có ngơn ngữ thiết kế hiện đại, bắt trend.
Các vấn đề cần giải quyết:
- Để xây dựng được một ứng dụng nghe nhạc trực tuyến cần giải
quyết các
vấn đề sau:
o Giao diện thân thiện và dễ sử dụng: Để giải quyết vấn đề
này ta cần phải có một con mắt thẩm mỹ và kinh nghiệm về
cách bố trí các chức năng của một chương trình để có thể
thiết kế một cách tiện lợi nhất về chức năng của chương
trình để người dùng có thể tiếp cần một cách dễ dàng nhất.
o Các thông tin đưa ra phải chính xác và đầy đủ: Thơng tin về
bài hát và ca sĩ phải được đưa ra đầy đủ và chính xác.
• Phạm vi giải quyết
Các vấn đề cần giải quyết được thực hiện trong phạm vi chương
trình với mục đích là giúp người dùng tiếp cần với chương trình
một cách dễ dàng nhất
7
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
2.1. Usecase hệ thống
Tác nhân
User
Usescase
Tìm kiếm
Nghe nhạc
2.2. Usecase nghe nhạc
- Sự kiện kích hoạt: Người dùng khởi động ứng dụng, người dùng nhập
tên bài hát vào trong khung tìm kiếm và chạm vào biểu tượng tìm kiếm,
hệ
thống sẽ xuất ra những bài hát có tên giống với tên mà người sử dụng
đã nhập
và cho phép người sử dụng chọn bài hát.
Luồng sự kiện chính:
•
•
•
•
•
Người dùng khởi động ứng dụng
Ứng dụng hiển thị thanh tìm kiếm
Người dùng nhập bài hát muốn nghe
Hệ thống đưa ra list bài hát
Người dùng chọn bài hát đúng theo ý người dùng
Hành động của tác nhân
Người dùng nhập bài hát
Người dùng chọn bài hát muốn
nghe
Phản ứng hệ thống
Hệ thống xuất ra danh sách bài hát
Hệ thống phát bài hát
8
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
2.3. Sơ đồ tuần tự
Sơ đổ tuần tự chức năng nghe nhạc
9
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
2.4. Sơ đồ hoạt động
10
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
CHƯƠNG II: XÂY DỰNG CHƯƠNG TRÌNH
1. Cấu trúc database
Bảng album
PK
IdAlbum
TenAlbum
TenCaSiAlbum
HinhAlbum
int(11)
Varchar(255)
Varchar(255)
Varchar(255)
IdTheLoai
IdChuDe
TenTheLoai
HinhTheLoai
int(11)
Varchar(255)
Varchar(255)
Varchar(255)
Bảng theloai
PK
FK1
11
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
Bảng baihat
PK
FK1
FK2
FK3
IdBaiHat
IdTheLoai
IdAlbum
IdPlaylist
TenBaiHat
HinhBaiHat
Casi
LinkBaiHat
Luotnghe
int(11)
Varchar(255)
Varchar(255)
Varchar(255)
Varchar(255)
Varchar(255)
Varchar(255)
Varchar(255)
Int(11)
IdChuDe
TenChuDe
HinhChuDe
Int(11)
Varchar(255)
Varchar(255)
IdPlayList
Ten
Hinhnen
Hinhicon
Int(11)
Varchar(255)
Varchar(255)
Varchar(255)
Bảng chude
PK
Bảng playlist
PK
Bảng quangcao
PK
FK1
ID
Hinhanh
Noidung
Idbaihat
Int(11)
Varchar(255)
Varchar(255)
Int(11)
12
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
2. Thiết kế giao diện
2.1. Giao diện trang chủ
13
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
2.2. Giao diện tìm kiếm, cài đặt
14
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
2.3. Giao diện Playlist
15
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
2.4 Giao diện Album
16
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
2.6. Giao diện khi phát nhạc
17
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
2.7. Giao diện đăng nhập, đăng ký
18
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
3. API Endpoint
Bảng thiết kế bộ API Endpoint cho từng module
theo từng usecase
Module Album
Id
getTrackByAlbumId
getByAlbumId
getByAlbumId
Module Artists
Id
METHOD
get
get
get
ENDPOINT
/v1/albums/{Id}/tracks
/v1/albums/{Id}
/v1/albums
USAGE
get an Album's Tracks
get an Album
get Several Albums
ENDPOINT
USAGE
getAlbumByArtistsId
getRelateByArtistsId
getTopTrackByArtistsId
getByArtistsId
getByArtistsId
METHO
D
get
get
get
get
get
/v1/artists/{Id}/albums
/v1/artists/{Id}/related-artists
/v1/artists/{Id}/top-tracks
/v1/artists/{Id}
/v1/artists
get an Artist's Albums
get an Artist's Related Artists
get an Artist's Top Tracks
get an Artist
get Several Artists
Module Browse
Id
getGenreSeeds
METHOD
get
USAGE
get Available Genre Seeds
getListCategories
get
ENDPOINT
/
v1/recommendations/availa
ble-genre-seeds
/v1/browse/categories
getCategoriesAlbumId
get
getPlaylistByCategoryI
d
getFeaturedPlaylist
get
getNewReleaseSongs
getRecommendSongs
get
get
get
/v1/browse/categories/
{category_Id}
/v1/browse/categories/
{category_Id}/playlists
/v1/browse/featuredplaylists
/v1/browse/new-releases
/v1/recommendations
get a List of Browse
Categories
get a Single Browse
Category
get a Category's playlists
get a List of Featured
Playlists
get a List of New Releases
get Recommendations
Based on Seeds
19
ỨNG DỤNG NGHE NHẠC
Module Library
Id
METHO
D
DELETE
DELETE
DELETE
GET
GET
GET
GET
GET
GET
PUT
PUT
PUT
removeAlbums
removeShows
removeTracks
checkAlbums
checkShows
checkTracks
getUserAlbums
getUserShows
getUserTracks
SaveAlbums
SaveShows
SaveTracks
Module
Player
Id
getRecentlyTr
acks
METHOD
GET
getCurrentPla
yback
getAvailableD
evices
GET
getCurrentTra
ck
GET
goToNextTrac
k
POST
goToPreviousT
rack
POST
createOne
POST
sendPause
PUT
sendStart
PUT
sendToggleRe
peat
PUT
sendPositionT
rack
PUT
GET
GVHD: ThS. Thái Thụy Hàn Uyển
ENDPOINT
USAGE
/v1/me/albums
/v1/me/shows
/v1/me/tracks
/v1/me/albums/contains
/v1/me/shows/contains
/v1/me/tracks/contains
/v1/me/albums
/v1/me/shows
/v1/me/tracks
/v1/me/albums
/v1/me/shows
/v1/me/tracks
Remove Albums for Current User
Remove User's Saved Shows
Remove Tracks for Current User
Check Current User's Saved Albums
Check User's Saved Shows
Check Current User's Saved Tracks
Get Current User's Saved Albums
Get User's Saved Shows
Get Current User's Saved Tracks
Save Albums for Current User
Save Shows for Current User
Save Tracks for Current User
ENDPOINT
/
v1/me/player/rec
ently-played
/v1/me/player
/
v1/me/player/de
vices
/
v1/me/player/cur
rently-playing
/
v1/me/player/nex
t
/
v1/me/player/pre
vious
/
v1/me/player/qu
eue
/
v1/me/player/pa
use
/
v1/me/player/pla
y
/
v1/me/player/rep
eat
/
v1/me/player/see
USAGE
Get the Current User's Recently Played Tracks
Get Information About The User's Current
Playback
Get a User's Available Devices
Get the User's Currently Playing Track
Skip User's Playback To Next Track
Skip User's Playback To Previous Track
Add an item to the end of the user's current
playback queue.
Pause a User's Playback
Start/Resume a User's Playback
Set Repeat Mode On User's Playback
Seek To Position In Currently Playing Track
20
ỨNG DỤNG NGHE NHẠC
sendToggleSu
ffle
PUT
sendATranfer
sendNewVolu
me
PUT
PUT
k
/
v1/me/player/shu
ffle
/v1/me/player
/
v1/me/player/vol
ume
GVHD: ThS. Thái Thụy Hàn Uyển
Toggle Shuffle For User's Playback
Transfer a User's Playback
Set Volume For User's Playback
21
ỨNG DỤNG NGHE NHẠC
Module Playlists
Id
removeOne
METHO
D
DELETE
getCurrentPlaylists
GET
getPlaylistCover
GET
getPlaylistTrack
GET
getPlaylists
getListOfPlaylist
createOne
GET
GET
POST
createOne
sendPlaylistCover
POST
PUT
sendNewPlaylistTrac
k
sendNewPlaylistDet
ails
PUT
PUT
Module Library
Id
getTopArtistsAndTracks
Module Tracks
Id
getAnalysisById
getFeatures
getFeaturesById
getTracks
getTracksById
ENDPOINT
USAGE
/v1/playlists/
{playlist_id}/tracks
/v1/me/playlists
Remove Items from a Playlist
/v1/playlists/
{playlist_id}/images
/v1/playlists/
{playlist_id}/tracks
/v1/playlists/{playlist_id}
/v1/users/{user_id}/playlists
/v1/playlists/
{playlist_id}/tracks
/v1/users/{user_id}/playlists
/v1/playlists/
{playlist_id}/images
/v1/playlists/
{playlist_id}/tracks
/v1/playlists/{playlist_id}
METHO
D
GET
METHOD
GET
GET
GET
GET
GET
Module Users Profile
Id
getCurrentProfile
getProfileByID
GVHD: ThS. Thái Thụy Hàn Uyển
METHOD
GET
GET
Get a List of Current User's
Playlists
Get a Playlist Cover Image
Get a Playlist's Items
Get a Playlist
Get a List of a User's Playlists
Add Items to a Playlist
Create a Playlist
Upload a Custom Playlist Cover
Image
Reorder or Replace a Playlist's
Items
Change a Playlist's Details
ENDPOINT
USAGE
/v1/me/top/{type}
Get User's Top Artists and Tracks
ENDPOINT
/v1/audio-analysis/{id}
/v1/audio-features
/v1/audio-features/{id}
/v1/tracks
/v1/tracks/{id}
USAGE
Get Audio Analysis for a Track
Get Audio Features for Several Tracks
Get Audio Features for a Track
Get Several Tracks
Get a Track
ENDPOINT
/v1/me
/v1/users/{user_id}
USAGE
Get Current User's Profile
Get a User's Profile
22
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
4. Backend Gui quản lý bằng Laravel
23
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
24
ỨNG DỤNG NGHE NHẠC
GVHD: ThS. Thái Thụy Hàn Uyển
25