Xây dựng ứng dụng android nghe nhạc offline

71 3 0
  • Loading ...
1/71 trang

Thông tin tài liệu

Ngày đăng: 16/03/2019, 20:27

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG - ISO 9001:2015 ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN Sinh viên : Đoàn Hoàng Hải Giảng viên hướng dẫn: ThS Phùng Anh Tuấn HẢI PHÒNG - 2018 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG - XÂY DỰNG ỨNG DỤNG ANDROID NGHE NHAC OFFLINE ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY NGÀNH: CƠNG NGHỆ THƠNG TIN Sinh viên : Đoàn Hoàng Hải Giảng viên hướng dẫn: ThS Phùng Anh Tuấn HẢI PHÒNG - 2018 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG NHIỆM VỤ ĐỀ TÀI TỐT NGHIỆP Sinh viên: Đồn Hồng Hải Lớp: CT1802 Mã SV: 1412101004 Ngành: Cơng nghệ thông tin Tên đề tài: Xây dựng ứng dụng Android nghe nhạc offline MỤC LỤC LỜI MỞ ĐẦU LỜI CẢM ƠN CHƯƠNG 1: HỆ ĐIỀU HÀNH ANDROID 1.1 Giới thiệu về hệ điều hành Android .9 1.2 Kiến trúc hệ điều hành Android 12 1.2.1 Nhân Linux 12 1.2.2 Thư viện 12 1.2.3 Thực thi 13 1.2.4 Nền tảng Android 13 1.2.5 Tầng ứng dụng 14 1.3 Giao diện hệ điều hành Android 14 1.3.1 Phiên Android 1.5 16 1.3.2 Phiên Android 1.6 16 1.3.3 Phiên Android 2.0 - 2.1 16 1.3.4 Phiên Android 2.2 - 2.2.3 .17 1.3.5 Phiên Android 2.3 - 2.3.7 .17 1.3.6 Phiên Android 3.0 - 3.2.6 18 1.3.7 Phiên Android 4.0 - 4.0.4 18 1.3.8 Phiên Android 4.1 - 4.3.1 18 1.3.9 Phiên Android 4.4 - 4.4.4 19 1.3.10 Phiên Android 5.0 - 5.1.1 .20 1.3.11 Phiên Android 6.0 - 6.0.1 20 1.3.12 Phiên Android 7.0 - 7.1.2 .21 1.3.13 Phiên Android 8.0 - 8.1 22 CHƯƠNG 2: MÔI TRƯỜNG PHÁT TRIỂN ỨNG DỤNG ANDROID STUDIO .23 2.1 Giới thiệu ứng dụng Android Studio 23 2.2 Cài đặt mơi trường lập trình Android 23 2.2.1 Cài đặt JAVA JDK 23 2.2.2 Cài đặt Android Studio 24 2.2.3 Máy ảo Android Genymotion 28 2.3 Thành phần ANDROID PROJECT .29 2.3.1 Tệp cấu hình Android 29 2.3.2 Thư mục Java 31 2.3.3 Thư mục Res 31 2.3.4 Tệp Grade Scripts 32 2.4 Thành phần giao diện 32 2.4.1 View group 32 2.4.2 View 33 2.5 Vòng đời ứng dụng android 35 2.6 Intent 36 2.6.1 Khái niệm 36 2.6.2 Các loại Intent .37 2.7 Share prefenrences .40 2.7.1 Khái niệm 40 2.7.2 Cách sử dụng 40 2.8 Hiệu ứng android 41 2.8.1 Hiệu ứng 41 2.8.2 Cách sử dụng 41 CHƯƠNG 3: TỔNG QUAN VỀ PHÁT NHẠC TRONG ANDROID 43 3.1 Giới thiệu file nhạc số 43 3.2 Một số định dạng file nhạc số phổ biến 44 3.2.1 Định dạng file nhạc số MP3 44 3.2.2 Một số định dạng file nhạc số khác 49 3.3 Chỉnh sửa thông tin file nhạc .51 3.3.1 Tải về cài đặt 52 3.3.2 Một số thao tác mp3tag 52 3.3 Phát nhạc android 57 3.3.1 Xin quyền truy cập nhớ 57 3.3.2 Thư viện phát nhạc MediaPlayer 57 CHƯƠNG 4: CHƯƠNG TRÌNH THỰC NGHIỆM 59 4.1 Phát biểu toán 59 4.2 Thiết kế chức hệ thống 59 4.2.1 Sơ đồ chức 59 4.2.2 Xây dựng chương trình 59 4.3 Giao diện chương trình 67 TỔNG KẾT 68 TÀI LIỆU THAM KHẢO 71 LỜI MỞ ĐẦU Hiện Cơng nghệ thơng tin vơ phát triển người đều sử dụng máy vi tính điện thoại di động để làm việc giải trí Do việc xây dựng ứng dụng cho điện thoại di động ngành công nghiệp đầy tiềm hứa hẹn nhiều phát triển vượt bậc ngành khoa học kỹ thuật Phần mềm, ứng dụng cho điện thoại di động đa dạng phong phú hệ điều hành di động Các hệ điều hành J2ME, Adroid, IOS, Hybrid, Web bases Mobile Application phát triể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 đời với kế thừa ưu việt hệ điều hành đời trước kết hợp nhiều công nghệ tiên tiến Adroid nhanh chóng đối thủ cạnh tranh mạnh mẽ với hệ điều hành trước hệ điều hành di động tương lai nhiều người ưa chuộng Ngày nay, với phát triển nhanh chóng xã hội, nhu cầu giải trí thơng qua điện thoại di động ngày phổ biến, em chọn đề tài “Xây dựng ứng dụng android nghe nhạc offline” với mục đích nghiên cứu, tìm hiểu về ứng dụng nghe nhạc android để đáp ứng nhu cầu giải trí đó, giúp cho người thư giãn thông qua ứng dụng cách dễ dàng LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành đến quý thầy cô Trường Đại Học Dân Lập Hải Phòng, người dìu dắt em tận tình, truyền đạt cho em kiến thức học quý báu suốt thời gian em theo học trường Em xin trân trọng gửi lời cảm ơn đến tất thầy cô khoa Công Nghệ Thông Tin, đặc biệt thầy giáo ThS Phùng Anh Tuấn, thầy tận tình hướng dẫn giúp đỡ em suốt trình làm tốt nghiệp Với bảo thầy, em có định hướng tốt việc triển khai thực yêu cầu trình làm đồ án tốt nghiệp Em xin cảm ơn người thân gia đình quan tâm, động viên ln tạo cho em điều kiện tốt suốt trình học tập làm tốt nghiệp Ngoài ra, em xin gửi lời cảm ơn tới tất bạn bè, đặc biệt bạn lớp CT1802 gắn bó, học tập giúp đỡ em năm qua suốt trình thực đồ án Em xin chân thành cảm ơn! Hải Phòng, ngày 01 tháng 08 năm 2018 Sinh viên Đồn Hoàng Hải CHƯƠNG 1: HỆ ĐIỀU HÀNH ANDROID 1.1 Giới thiệu hệ điều hành Android Android hệ điều hành dựa nền tảng Linux[1], thiết kế dành cho thiết bị di động có hình cảm ứng điện thoại thơng minh máy tính bảng Ban đầu, Android phát triển Tổng cơng ty Android, với hỗ trợ tài từ Google sau Google mua lại vào năm 2005 Chính mã nguồn mở Android với tính khơng ràng buộc nhiều cho phép nhà phát triển thiết bị di động lập trình viên điều chỉnh phân phối Android cách tự Ngồi ra, Android có cộng đồng lập trình viên đơng đảo chun viết ứng dụng để mở rộng chức thiết bị Nhờ yếu tố mở, dễ dàng tinh chỉnh phát triển nhanh chóng khiến hệ điều hành dần trở nên phổ biến, kết thiết kế để chạy điện thoại máy tính bảng Android xuất smart TV, máy chơi game số thiết bị điện tử khác Android bắt đầu với beta vào tháng 11 năm 2007 phiên thương mại đầu tiên, Android 1.0, phát hành vào tháng năm 2008 Kể từ tháng năm 2009, phiên Android phát triển, đặt tên theo chủ đề bánh kẹo 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, Oreo Kỷ nguyên Android thức bắt đầu vào ngày 22 tháng 10 năm 2008, điện thoại T-Mobile G1 bắt đầu bán Mỹ Vào thời gian đầu, nhiều tính bị thiếu sót như: bàn phím ảo, cảm ứng đa điểm tính mua ứng dụng chưa xuất Tuy nhiên, số tính giao diện đặc sản hệ điều hành khởi nguồn từ G1 trở thành yếu tố thiếu Android sau Sự phát triển hệ điều hành Android:  Thanh thông báo vuốt từ xuống (Notification bar): Ngay từ ngày Android, thông báo đánh dấu bước quan trọng mà trước chưa hề có hệ điều hành làm - đưa tất thông tin tin nhắn, tin thoại gọi nhỡ với thao tác vuốt xuống Hình 1.1.1 Thanh thơng báo phiên thời kỳ đầu(trái) so với phiên Android 8.1(phải)  Màn hình (Home Screen) widget: Một điểm khác biệt Android so với hệ điều hành khác phần hình Bên cạnh việc thay đổi hình nền, Android cho phép người dùng tùy biến hình với nhiều widgets kèm theo, chẳng hạn đồng hồ, lịch, trình nghe nhạc, đưa icon ứng dụng ngồi chí can thiệp sâu để thay đổi toàn giao diện hình Home Screen Hình 1.1.2 Màn hình Android 1.0(trái) so với Android 8.1(phải)  Đồng tích hợp chặt chẽ với Gmail: Vào thời điểm điện thoại G1 bán ra, Gmail hỗ trợ giao thức POP IMAP để tích hợp với trình email di động Tuy nhiên, lúc khơng có sản phẩm có 10 Hình 3.3.2.9 Kết cuối sau thêm tag tên album tên ca sỹ 3.3 Phát nhạc android 3.3.1 Xin quyền truy cập nhớ Dù ghi liệu hay đọc liệu phải xin cấp quyền đọc hay ghi nhớ Chính mà xin cung cấp quyền trước cách khai báo vào file AndroidManifest.xml sau: 3.3.2 Thư viện phát nhạc MediaPlayer Android cung cấp nhiều cách để điều khiển tập tin audio video[3][4] Một cách sử dụng lớp MediaPlayer a Các phương thức • create(): Phương thức giúp tạo thể lớp MediaPlayer  start(): Nhạc chơi từ bắt đầu  pause(): Nhạc phát từ chỗ bị dừng khơng phải phát từ đầu  reset(): Để bắt đầu âm nhạc từ đầu  isPlaying(): Phương thức trả về true/false cho biết hát chơi hay khơng  seekTo (position): Phương thức có số nguyên, di chuyển hát đến giây phút đặc biệt 57  getCurrentDuration(): Phương thức trả về vị trí hát mili giây  getDuration(): Phương thức trả về tổng thời gian hát mili giây  release(): Phương thức phát hành tài nguyên gắn với đối tượng MediaPlayer  setVolume(float leftVolume, float rightVolume): Phương thức đặt âm lượng lên xuống  setDataSource(FileDescriptor fd): Phương thức tập hợp nguồn liệu tập tin âm / video  selectTrack(int index): Phương thức có số nguyên, chọn hát từ danh sách số đặc biệt  getTrackInfo(): Phương thức trả về mảng thông tin theo dõi b Các hàm callback  setOnPreparedListener(OnPreparedListener): Lắng nghe kiện Prepared xong media để chuẩn bị cho việc play  setOnVideoSizeChangedListener(OnVideoSizeChangedListener):Lắng nghe kiện thay đổi size media lúc play video  setOnSeekCompleteListener(OnSeekCompleteListener): Lắng nghe kiện di chuyển seekbar hỗ trợ MediaPlayer  setOnCompletionListener(OnCompletionListener): Lắng nghe kiện play xong media, sử dụng để quy định việc làm play lại hay play hát khác  setOnBufferingUpdateListener(OnBufferingUpdateListener): Lắng nghe kiện thay đổi đệm play media online  setOnInfoListener(OnInfoListener): Lắng nghe kiện có thơng tin cảnh báo  setOnErrorListener(OnErrorListener): Lắng nghe kiện xảy lỗi play media 58 CHƯƠNG 4: CHƯƠNG TRÌNH THỰC NGHIỆM 4.1 Phát biểu toán Nghe nhạc điện thoại nhu cầu giải trí phổ biến người dùng, giúp thư giãn làm việc hiệu Chương trình nghe nhạc thường tích hợp sẵn điện thoại Tuy nhiên việc tự xây dựng ứng dụng phát nhạc cá nhân giúp cho người dùng tùy biến giao diện máy phát nhạc, hiển thị thêm giao diện thông tin về hát họ yêu thích, chọn lựa hát cần nghe cách dễ dàng, nhanh chóng… Xuất phát từ nhu cầu trên, em 4.2 Thiết kế chức hệ thống 4.2.1 Sơ đồ chức Hình 4.2.1.1 Sơ đồ chức  Chức Shuffle: Khi người dùng chọn nút Shuffle, hát ngẫu nhiên danh sách phát kết thúc hát  Chức Previous: Khi người dùng chọn nút previous, hát phía trước hát danh sách hát phát  Chức Play: Khi người dùng chọn nút play, hát danh sách hát phát  Chức Pause: Khi người dùng chọn nút pause, hát tạm dừng  Chức Stop: Khi người dùng chọn nút stop, hát dừng lại  Chức Next: Khi người dùng chọn nút next, hát phía sau hát danh sách hát phát  Chức Repeat: Khi người dùng chọn nút Repeat, hát danh sách hát phát hát cuối danh sách 4.2.2 Xây dựng chương trình a Xây dựng giao diện Giao diện chương trình bao gồm: 59  Listview: Hiển thị danh sách hát  Textview: Hiển thị tên hát, tên ca sỹ, tổng thời gian hát thời gian thực hát  Imageview: Hiển thị nút kiện (play, next, previous, stop, repeat, suffle)  Seekbar: Thanh thiết lập tiến trình hát  Tạo file item_list.xml thư mục layout File xml để thể tiêu đề hát Dùng textview để hiển thị tên hát, textview để hiển thị tên ca sỹ, imageview để hiển thị ảnh ca sỹ b Tạo lớp ListViewAdapter  Mô tả Lấy liệu đối tượng danh sách hát gán thuộc tính đối tượng vào layout item_list.xml  Mã nguồn public class ListViewAdapter extends BaseAdapter { private ArrayList danhsachbaihat; private Context context; 60 public ListViewAdapter(Context context, ArrayList danhsachbaihat) { this.danhsachbaihat = danhsachbaihat; this.context = context; } public View getView(int position, View convertView, ViewGroup parent) { Holder holder; if (convertView == null) { holder = new Holder(); LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = layoutInflater.inflate(R.layout.item_list, null); holder.tvTitle = (TextView) convertView.findViewById(R.id.tv_title); holder.tvArtist = (TextView) convertView.findViewById(R.id.tv_artist); holder.ivAnhCaSi = (ImageView) convertView.findViewById(R.id.ivAnhcasi); convertView.setTag(holder); }else{ holder = (Holder) convertView.getTag(); } Song song = getItem(position); holder.tvTitle.setText(song.title); holder.tvArtist.setText(song.artist); Bitmap bm = BitmapFactory.decodeByteArray(song.anhcasy, 0, song.anhcasy.length); holder.ivAnhCaSi.setImageBitmap(bm); return convertView; } private class Holder { TextView tvTitle; TextView tvArtist; ImageView ivAnhCaSi; } } c Lấy danh sách hát gán lên listview  Mô tả Truy cập vào thư mục “Mymusic” nhớ Sau lọc file nhạc có “.mp3”  Mã nguồn String path = Environment.getExternalStorageDirectory().getAbsolutePath() +"/Mymusic"; File file = new File(path); File[] files = file.listFiles(); for (int i = 0; i < files.length; i++) { String s = files[i].getName(); if(s.endsWith(".mp3")) { MediaMetadataRetriever mmr = new MediaMetadataRetriever(); String pathbh = files[i].getAbsolutePath(); 61 mmr.setDataSource(pathbh); String artist = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST); String title = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE); byte[] anhcasi = mmr.getEmbeddedPicture(); danhsachbaihat.add(new Song(title, artist ,pathbh, anhcasi)); } } adapter.notifyDataSetChanged(); } d Bắt xử lý kiện  Sự kiện chạm vào listview  Mô tả Khi chọn hát listview hát phát  Mã nguồn lvDSBaiHat.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView adapterView, View view, int i, long l) { index = i; if(status == PLAY || status == PAUSE) { mediaPlayer.stop(); status = STOP; } runSong(); mediaPlayer.start(); status = PLAY; ivPlay.setImageResource(R.drawable.ic_pause_black_24dp); } });  Nút Play  Mơ tả Kiểm tra có hát chạy (status = PLAY) cho tạm dừng hát, đổi icon pause thành icon play[7] Còn chưa có hát chọn, phát hát danh sách hát, sau đổi icon play thành icon pause  Mã nguồn ivPlay.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(status == STOP) { runSong(); mediaPlayer.start(); status = PLAY; Toast.makeText(getApplicationContext(),"Play ",Toast.LENGTH_SHORT ).show(); } else if(status == PLAY) { mediaPlayer.pause(); status = PAUSE; 62 ivPlay.setImageResource(R.drawable.ic_pause_black_24dp); Toast.makeText(getApplicationContext(),"Pause ",Toast.LENGTH_SHOR T).show(); } else if(status == PAUSE){ mediaPlayer.start(); status = PLAY; ivPlay.setImageResource(R.drawable.ic_play_arrow_black_24dp); Toast.makeText(getApplicationContext(),"Play ",Toast.LENGTH_SHORT ).show(); } } });  Nút Next  Mô tả Kiểm tra có hát phát cho dừng hát lại Sau kiểm tra số hát tại, nhỏ tổng số hát trừ (danhsachbaihat.size() -1) phát hát có số cộng (index+=1) Còn ngược lại phát hát  Mã nguồn ivNext.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(status == PLAY){ mediaPlayer.stop(); status = STOP; } if (index < danhsachbaihat.size()-1){ index += 1; }else{ index = 0; } runSong(); mediaPlayer.start(); status = PLAY; } });  Nút Previous  Mơ tả Kiểm tra có hát phát cho dừng hát lại Sau kiểm tra số hát tại, lớn khơng (index>0) phát hát có số trừ (index-=1) Ngược lại phát hát cuối danh sách  Mã nguồn ivPrevious.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (index > 0){ 63 index -=1 ; }else{ index = danhsachbaihat.size()-1; } if(status == PLAY){ mediaPlayer.stop(); status = STOP; } runSong(); mediaPlayer.start(); status = PLAY; } });  Nút Stop  Mô tả Nếu có hát phát dừng hát lại, sau đổi icon nút play thành icon play, đặt tên hát, tên ca sỹ, thời gian thực thời gian tổng hát về mặc định ban đầu  Mã nguồn ivStop.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(status == PLAY || status ==PAUSE){ mediaPlayer.stop(); mediaPlayer.release(); status = STOP; ivPlay.setImageResource(R.drawable.ic_play_arrow_black_24dp); txtSong.setText("Tên hát"); txtSinger.setText("Tên ca sĩ"); stopSong(); } } });  Nút Shuffle  Mô tả Kiểm tra trạng thái Shuffle bật chạy hát ngẫu nhiên danh sách hát kết thúc hát  Mã nguồn ivShuffle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { isShuffle = !isShuffle; final Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { if (isShuffle) { mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { 64 mPlayer) { @Override public void onCompletion(MediaPlayer if (status == PLAY) { mediaPlayer.stop(); Random rand = new Random(); index = rand.nextInt((danhsachbaihat.size() - 1) - + 1) + 0; runSong(); mediaPlayer.start(); status = PLAY; ivPlay.setImageResource(R.drawable.ic_play_arrow_black_24dp); } } }); handler.postDelayed(this, 500); } } }, 500); } });  Nút Repeat  Mô tả Kiểm tra trạng thái Repeat bật cho chạy hát hết danh sách, trạng thái khơng bật dừng lại kết thúc hát  Mã nguồn ivRepeat.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { isRepeat = !isRepeat; if (isRepeat) { ivRepeat.setImageResource(R.drawable.ic_repeat_one_black_24dp); } else { ivRepeat.setImageResource(R.drawable.ic_repeat_black_24dp); } final Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { if (isRepeat) { mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mPlayer) { if (status == PLAY) { mediaPlayer.stop(); index = index + 1; if (index == danhsachbaihat.size()) { index = 0; } runSong(); 65 mediaPlayer.start(); status = PLAY; ivPlay.setImageResource(R.drawable.ic_play_arrow_black_24dp); } } }); handler.postDelayed(this, 500); } } }, 500); } });  Thanh Seekbar • Mơ tả Diễn tả thời gian thực hát Khi kéo seekbar đến vị trí tiến trình hát tiếp tục vị trí  Mã nguồn seekBarTime.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) { } @Override public void onStartTrackingTouch(SeekBar seekBar) { } @Override public void onStopTrackingTouch(SeekBar seekBar) { musicPlayer.seek(seekBarTime.getProgress()); } });  Cập nhập tổng thời gian hát  Mô tả Định dạng thời gian tổng hát để hiển thị phút giây  Mã nguồn private void setTimeTotal(){ SimpleDateFormat DinhDang = new SimpleDateFormat("mm:ss"); txtTimeTotal.setText(DinhDang.format(mediaPlayer.getTimeTotal())); seekBarTime.setMax(mediaPlayer.getTimeTotal()); }  Cập nhập thời gian thực hát  Mô tả Định dạng thời gian thực hát để thị phút giây  Mã nguồn 66 private void updateTimesong(){ final Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { SimpleDateFormat dinhDang = new SimpleDateFormat("mm:ss"); txtTimeCurrent.setText(dinhDang.format(mediaPlayer.getTimeCurrent() )); seekBarTime.setProgress(mediaPlayer.getTimeCurrent()); handler.postDelayed(this, 500); } }, 100); } 4.3 Giao diện chương trình Mơ tả Hình ảnh Màn hình chương trình khởi động:  Hiển thị list danh sách hát  Mỗi hát hiển thị:  Ảnh ca sỹ  Tên hát  Tên ca sỹ  Hiển thị nút chức trương trình 67 Mơ tả Giao diện chương trình phát hát: Hình ảnh  Hiển thị tên hát, tên ca sỹ  Hiển thị tổng thời gian thời gian thực hát  Thanh Seekbar thể thời gian thực hát  Nút Play hiển thị icon pause Giao diện chương trình tạm dừng hát:  Nút Play hiển thị icon play 68 Mơ tả Hình ảnh Giao diện chương trình bật nút Repeat:  Nút Repeat đổi icon khác 69 TỔNG KẾT Trong đồ án em nghiên cứu, tìm hiểu về ứng dụng phát nhạc Android Đồ án thực nhiệm vụ sau:  Tìm hiểu lịch sử cấu trúc hệ điều hành Android  Nắm bắt quy trình làm phần mềm mobile  Tìm hiểu kỹ thuật phát nhạc Android  Kỹ thuật truy cập file nhớ điện thoại Android  Bước đầu xây dựng thành công ứng dụng Android nghe nhạc offline Tuy nhiên, thời gian khả có hạn, nên em chưa sâu tìm hiểu thêm về ứng dụng, giao diện ứng dụng sơ sài, xử lý code mơi trường lập trình Android Studio chưa tốt, chương trình nhiều thiết sót Rất mong thầy giáo bạn tận tình giúp đỡ để chương trình ngày hồn thiện Trong tương lai, em mong muốn ứng dụng phát triển về mặt (giao diện, chức năng,…) trở thành chương trình nghe nhạc online phổ biến 70 TÀI LIỆU THAM KHẢO  Tham khảo trực tuyến [1] https://www.thegioididong.com/tin-tuc/he-dieu-hanh-android-qua-cac-phienban-cap-nhat-592544 [2] https://tinhte.vn/threads/tim-hieu-qua-trinh-phat-trien-cua-android-qua-cacphien-ban.1367201/ [3] https://viblo.asia/p/tim-hieu-mediaplayer-trong-android [4] http://giasutinhoc.vn/phat-trien-app-android/media-player-trong-android https://www.thegioididong.com/hoi-dap/cac-dinh-dang-video-va-am-thanh-phobien-hien-nay [6] https://vi.wikipedia.org/wiki/MP3 [7] Kênh youtube Khoa Phạm [5] 71 ... tài Xây dựng ứng dụng android nghe nhạc offline với mục đích nghiên cứu, tìm hiểu về ứng dụng nghe nhạc android để đáp ứng nhu cầu giải trí đó, giúp cho người thư giãn thơng qua ứng dụng cách... khơng hề có kho ứng dụng, vào thời điểm Android mắt, gần khơng có điện thoại có kho ứng dụng tích hợp Android mở đầu cách mạng ứng dụng di động Android Market G1 thời có ứng dụng giao diện đơn... truy cập vào API khuôn khổ sử dụng ứng dụng lõi Các kiến trúc ứng dụng thiết kế để đơn giản hóa việc sử dụng lại thành phần; ứng dụng xuất khả ứng dụng khác sau sử dụng khả (có thể hạn chế bảo
- Xem thêm -

Xem thêm: Xây dựng ứng dụng android nghe nhạc offline , Xây dựng ứng dụng android nghe nhạc offline

Gợi ý tài liệu liên quan cho bạn

Nhận lời giải ngay chưa đến 10 phút Đăng bài tập ngay