Ⅰ Android开发音乐播放器,如何实现单曲循环,顺序播放,随机播放,全部循环功能,高分求助
MediaPlayer 对象调用setLooping(true);是循环播放。顺序播放,随机播放,全部循环功能 这些就是自己写方法实现就好了,顺序播放就是当一首歌播放完后,在播放列表中找到它下一首歌的ID,直到全部完成。随机播放就是当一首歌播放完后,在播放列表中随机抽取一首歌的ID(排除已经播放),直到全部完成。全部循环就是顺序播放全部歌曲,到最后一首之后从第一首播放。
Ⅱ Android 音乐播放器开发如何将所有的歌曲通过点击listview的item播放
当你点击item的时候,将这首歌曲的id发送给service,然后service里通过id查找到这首歌曲的地址,然后去播放这首歌,你点击那首歌都是第一首,应该就是没有把歌曲id发送给service
Ⅲ 在Android开发中做音乐播放器的时候如何实现把喜欢的歌添加到我的最爱列表
首先你的歌曲是要存在数据库里的吧第一种方法新建一个我的最爱歌曲的表然后表里存歌名,歌曲地址,还有各种其他歌曲的参数,看你的歌都有那些参数了然后在播放列表中实现一个长点击事件,弹出一个菜单或者直接操作都行然后把歌曲的各种信息存到表里就行了我的最爱就直接是这张表就行了第二种方法在你的歌曲表中新加一个bool列然后通过这个列来表示你的歌曲是否在我的最爱中当你想要打开我的最爱时就检测这个属性就行了是就在 不是就不再
Ⅳ Android要求做一个一个简易音乐播放器。用Service实现
android开发培训一个简单的Android音乐播放器在这里主要是用两个简单的按钮实现音乐的播放和停止功能,工程的目录结构为:同时添加一个文件夹,里面放后缀为mp3的文件就可以了。 在main配置文件主要是添加两个Button:添加一个activity类和一个service类AndroidManifest.xml配置文件为:创建一个MusicServiceActivity类启动service类:中网互赢 手机客户端
Ⅳ 我想用而eclipse开发一个安卓音乐播放器,需要看哪些书
安卓系统自带了MediaPlayer类,直接调用就可以播放音乐了。看API就可以了。如果英文不好,可以看Mars的安卓视频教程的第一季的最后几集,就是教安卓音乐播放器开发的。
Ⅵ android系统如何制作音乐播放器
简单说:UI编程+Activity编程+Service编程+注册文件中注册两个应用音乐播放器是一个后台运行的APP,就是最小化以后也在后台默默运行,所以他是一个Service.你需要制作一个界面,也就是layout文件然后你需要写一个Activity你还需要再注册文件中注册这个Service 和 Activity。如果你没有基础,你可能都不知道我说的是神马?
Ⅶ android开发音乐播放器MediaPlayer.prepare()
MediaPlayer类可用于控制音频/视频文件或流的播放,我曾在《Android开发之基于Service的音乐播放器》一文中介绍过它的使用。下面让我们看一下MediaPlayer类的详细介绍。一、类结构:java.lang.Object↳android.media.MediaPlayer二、构造方法和公有方法构造方法:Public ConstructorsMediaPlayer()默认构造方法。公有方法:Public Methodsstatic MediaPlayercreate(Context context, Uri uri, SurfaceHolder holder)指定从资源ID对应的资源文件中来装载音乐文件,同时指定了SurfaceHolder对象并返回MediaPlyaer对象。static MediaPlayercreate(Context context, int resid)指定从资源ID对应的资源文件中来装载音乐文件,并返回新创建的MediaPlyaer对象。static MediaPlayercreate(Context context, Uri uri)从指定Uri装在音频文件,并返回新创建的MediaPlayer对象。intgetCurrentPosition()获取当前播放的位置。intgetDuration()获取音频的时长。intgetVideoHeight()获取视频的高度。intgetVideoWidth()获取视频的宽度。booleanisLooping()判断MediaPlayer是否正在循环播放。booleanisPlaying()判断MediaPlayer是否正在播放。voidpause()暂停播放。voidprepare()准备播放(装载音频),调用此方法会使MediaPlayer进入Prepared状态。voidprepareAsync()准备播放异步音频。voidrelease()释放媒体资源。voidreset()重置MediaPlayer进入未初始化状态。voidseekTo(int msec)寻找指定的时间位置。voidsetAudioStreamType(int streamtype)设置音频流的类型。voidsetDataSource(String path)指定装载path路径所代表的文件。voidsetDataSource(Context context, Uri uri, Map<String, String headers)指定装载uri所代表的文件。voidsetDataSource(Context context, Uri uri)指定装载uri所代表的文件。voidsetDataSource(FileDescriptor fd, long offset, long length)指定装载fd所代表的文件中从offset开始长度为length的文件内容。voidsetDataSource(FileDescriptor fd)指定装载fd所代表的文件。voidsetDisplay(SurfaceHolder sh)设置显示方式。voidsetLooping(boolean looping)设置是否循环播放。voidsetNextMediaPlayer(MediaPlayer next)设置当前流媒体播放完毕,下一个播放的MediaPlayer。voidsetOnBufferingUpdateListener(MediaPlayer.OnBufferingUpdateListener listener)注册一个回调函数,在网络视频流缓冲变化时调用。voidsetOnCompletionListener(MediaPlayer.OnCompletionListener listener)为Media Player的播放完成事件绑定事件监听器。voidsetOnErrorListener(MediaPlayer.OnErrorListener listener)为MediaPlayer的播放错误事件绑定事件监听器。voidsetOnPreparedListener(MediaPlayer.OnPreparedListener listener)当MediaPlayer调用prepare()方法时触发该监听器。voidsetOnSeekCompleteListener(MediaPlayer.OnSeekCompleteListener listener)当MediaPlayer调用seek()方法时触发该监听器。voidsetOnVideoSizeChangedListener(MediaPlayer.OnVideoSizeChangedListener listener)注册一个用于监听视频大小改变的监听器。voidsetScreenOnWhilePlaying(boolean screenOn)置是否使用SurfaceHolder来显示。voidsetSurface(Surface surface)设置Surface。voidsetVideoScalingMode(int mode)设置视频缩放的模式。voidsetVolume(float leftVolume, float rightVolume)设置播放器的音量。voidsetWakeMode(Context context, int mode)为MediaPlayer设置低级电源管理行为。.voidstart()开始或恢复播放。voidstop()停止播放。三、常用方法分析:1.使用进度条:进度条SeekBar可以用来显示播放进度,用户也可以利用SeekBar的滑块来控制音乐的播放。SeekBar需要使用的一些方法:setProgress(int value):设置滑块的位置方法为。setMax(int value):设置进度条的最大长度。setOnSeekBarChangeListener(OnSeekBarChangeListener l):设置SeekBar的进度改变事件。MusicPlayer需要使用的一些方法:getDuration():获得音乐长度为。getCurrentPosition():获得现在播放的位置。seekTo(int msec):调用seekTo()方法可以调整播放的位置。seekTo(int)方法是异步执行的,所以它可以马上返回,但是实际的定位播放操作可能需要一段时间才能完成,尤其是播放流形式的音频/视频。当实际的定位播放操作完成之后,内部的播放引擎会调用客户端程序员提供的OnSeekComplete.onSeekComplete()回调方法。可以通过setOnSeekCompleteListener(OnSeekCompleteListener)方法注册。seekTo(int)方法也可以在其它状态下调用,比如Prepared,Paused和PlaybackCompleted状态。此外,目前的播放位置,实际可以调用getCurrentPosition()方法得到,它可以帮助如音乐播放器的应用程序不断更新播放进度。创建并使用进度条的步骤:第一步:创建一个进度条//进度条static SeekBarskbMusic;skbMusic=(SeekBar)findViewById(R.id.skbMusic);第二步:为进度条的改变事件注册并添加监听器skbMusic.setOnSeekBarChangeListener(sChangeListener);/*** SeekBar进度改变事件*/=new OnSeekBarChangeListener() { @Overridepublicvoid onStopTrackingTouch(SeekBar seekBar) {//TODO Auto-generated method stub//当拖动停止后,控制mediaPlayer播放指定位置的音乐MusicService.mediaPlayer.seekTo(seekBar.getProgress());MusicService.isChanging=false; } @Overridepublicvoid onStartTrackingTouch(SeekBar seekBar) {//TODO Auto-generated method stubMusicService.isChanging=true;} @Overridepublicvoid onProgressChanged(SeekBar seekBar,int progress,boolean fromUser) {//TODO Auto-generated method stub }};第三步:设置进度条的最大长度://getDuration()方法要在prepare()方法之后,否则会出现Attempt to call getDuration without a valid mediaplayer异常MusicBox.skbMusic.setMax(mediaPlayer.getDuration());//设置SeekBar的长度第四步:更新进度条//———-定时器记录播放进度———//mTimer =new Timer();mTimerTask =new TimerTask() {@Overridepublicvoid run() {isTimerRunning=true;if(isChanging==true)//当用户正在拖动进度进度条时不处理进度条的的进度return; MusicBox.skbMusic.setProgress(mediaPlayer.getCurrentPosition());}};//每隔10毫秒检测一下播放进度mTimer.schele(mTimerTask, 0, 10);2.装载音频文件:为了让MediaPlayer来装载指定音频文件,MediaPlayer提供了如下简单的静态方法。static MediaPlayer create(Context context, Uri uri):从指定Uri来装载音频文件,并返回新创建的MediaPlayer对象。static MediaPlayer create(Context context, int resid):从 resid资源 ID对应的资源文件中装载音频文件,并返回新创建的MediaPlayer对象。提示:上而这两个方法用起来非常方便,但这两个方法每次都会返回新创建的MediaPlayer对象,如来程序需要使用MediaPlayer循环播放多个音频文件,使用MediaPlayer的静态create方法就不太合适了,此时可通过MediaPlayer的setDataSource()方法来装载指定的音频文件。MediaPlayer提供了如下方法来指定装载相应的音频文件。setDataSource(String path):指定装载path路径所代表的文件。setDataSource(FileDescriptor fd, long offset,long length):指定装载fd所代表的文件中从offset开始长度为length的文件内容。setDataSource(FileDescriptor fd):指定装载fd所代表的文件。setDataSource(Context context, Uri uri):指定装载uri所代表的文件。提示:执行上面所示的setDataSource()方法之后,MediaPlayer并未真正去装载那些音频文件,还需要调用MediaPlayer的prepare()方法去准备音频,所谓“准备”,就是让MediaPlayer真正去装载音频文件。使用已有的MediaPlayer对象装载“一首”歌曲的代码模板为:mPlayer.reset();//装战下一竹歌曲mPlayer.setDataSource(M/mnt/sdcard/next.mp3);//准备声音 mPlayer.prepare();"播放mPlayer.start();}catch (IOException e)e.printStackTrace();}3.与MediaPlayer有关的事件监听器:MediaPlayer提供了一些绑定事件监听器的方法,用于监听MediaPlayer播放过程中所发生的特定事件,绑定事件监听器的方法如下。setOnCompletionListener(MediaPlayer.OnCompletionListener listener):为 Media Player的播放完成事件绑定事件监听器。setOnErrorListener(MediaPlayer.OnErrorListener listener):为MediaPlayer的播放错误事件绑定事件监听器。setOnPreparedListener(MediaPlayer.OnPreparedListener listener):当 MediaPlayer调用prepare()方法时触发该监听器。setOnSeekCompleteListener(MediaPlayer.OnSeekCompleteListener listener):当MediaPlayer调用seek()方法时触发该监听器。因此可以在创建一个MediaPlayer对象之后,通过为该MediaPlayer绑定监听器来监听相应的事件,例如如下代码://为MediaPlayer的播放完成事件绑定事件监听器mPlayer.setOnErrorListener(new OnErrorListener() { @Overridepublicboolean onError(MediaPlayer mp,int what,int extra) { //TODO Auto-generated method stub//针对错误进行相应的处理// … …}});//为MediaPlayer的播放完成讲件绑定市件监听器mPlayer.setOnCompletionListener(new OnCompletionListener() { @Overridepublicvoid onCompletion(MediaPlayer mp) {//TODO Auto-generated method stubcurrent++;prepareAndPlay(current); }});四、MediaPlayer播放不同来源的音频文件:1.播放应用的资源文件播放应用的资源文件需要两步即:1) 调用MediaPlayer的create(Context context,int resid)方法加指定资源文件。2) 调用 MediaPlayer的 start()、pause()、stop()等方法控制播放即可。例如如下代码:MediaPlayer mPlayer=new MediaPlayer();mPlayer.create(this, R.raw.music);2. 播放应用的原始资源文件播放应用的资源文件按如下步骤执行。1) 调用 Context的 getAssets()方法获取应用的 AssetManager。2) 调用AssetManager对象的openFd(String name)方法打开指定的原生资源,该方法返回一个AssetFileDescriptor对象。3) 调用 AssetFileDescriptor的 getFileDescriptor()、getStartOffset()和 getLength()方法来获取音频文件的FileDescriptor、开始位置、长度等。4) 创建MediaPlayer对象(或利用已有的MediaPlayer对象),并调用MediaPlayer对象的setDataSource(FileDescriptor fd,long offset, long length)方法来装载音频资源。5) 调用MediaPlayer对象的prepare()方法准备音频。6) 调用MediaPlayer的start()、pause()、stop()等方法控制播放即可。例如如下代码片段://获取assets目录下指定文件的AssetFileDescriptor对象AssetFileDescriptor assetFileDescriptor=assetManager.openFd(musics[current]);mediaPlayer.reset();//初始化mediaPlayer对象mediaPlayer.setDataSource(assetFileDescriptor.getFileDescriptor(), assetFileDescriptor.getStartOffset(), assetFileDescriptor.getLength());//准备播放音乐mediaPlayer.prepare();//播放音乐mediaPlayer.start();3. 播放外部存储器上音频文件播放外部存储器上音频文件按如下步骤执行。1) 创建MediaPlayer对象(或利用已有的MediaPlayer对象),并调用MediaPlayer对象的setDateSource(String path)方法装载指定的音频文件。 2) 调用MediaPlayer对象的prepare()方法准备音频。 3) 调用MediaPlayer的start()、pause()、stop()等方法控制播放即可。例如如下代码://加载SD卡上的指定资源音频文件mPlayer.setDataSource("/mnt/You Are The One.mp3");mPlayer.prepare();//准备因音频mPlayer.start();//播放音频4.播放来自网络的音频文件播放来自网络的音频文件冇两种方式:1.直接使用MediaPlayer的静态create(Context context, Uri uri)方法;2.调用 MediaPlayer的setDataSource(Context context,Uri uri)装载指定Uri对应的音频文件。以第二种方式播放来自网络的音频文件的步骤如下。1. 根据网络上的音频文件所在的位置创建Uri对象。2. 创建MediaPlayer对象(或利用己有的MediaPlayer对象),并调用MediaPlayer对象的 setDateSource(Context context,Uri uri)方法装载Uri对应的音频文件。3. 调用MediaPlayer对象的prepare()方法准备音频。4. 调用MediaPlayer的start()、pause()、stop()等方法控制播放即可。
Ⅷ 有基于Android studio 的音乐播放器开发教程吗
这有个eclipse开发的, android视频音乐播放器的demo, eclipse跟android studio也就是开发工具不一样而已,代码原理都是一样的.
Ⅸ 如何用androifstudio制作一个android音乐播放器
音乐播放器其实最核心的就是音乐的播放、暂停、快进快退、歌曲切换。如果需要后台播放就要用到Service。先考虑功能,音乐是程序去扫描还是程序自动搜索,自动搜索就涉及到文件的遍历,文件读取到以后就涉及到如何获取mp3的信息(歌曲名、歌手、专辑等等,也可通过谷歌自带的媒体库读取,不过依耐性就太强了),还有就是界面了,你要做成什么样的(比如播放界面就在此界面还是跳转一个界面播放等等)
Ⅹ 怎么用android做一个音乐播放器
本文将引导大家做一个音乐播放器,在做这个Android开发实例的过程中,能够帮助大家进一步熟悉和掌握学过的ListView和其他一些组件。为了有更好的学习效果,其中很多功能我们手动实现,例如音乐播放的快进快退等。http://www.jizhuomi.com/android/example/104.html