Ⅰ 急急急,求一份android音乐播放器源代码,功能不需太复杂,有下载、播放,歌曲列表等功能即可
今天我也想在这说说我对长昊,也就是比德公司的真实情况,我本人刚刚有一件回藏品被答流拍回来,当时我的是一件真品瓷器,本来我想50万元就卖,公司的业务员说这件东西如果那么便宜卖就亏了!让我160万元起拍,说历史上有人成交在400多万元!我说我没有那么多的钱,就交了一万元,他们公司就定160万元起拍,让我交一万元也可以,再写一条子说如果成交了就再补20000元给他们,我说签了合同,等啊等,今年春拍5.16号那天我因飞机误点没有赶上,我就让公司给我看录相,他们说没有,我也没有看,反正是流拍了,当时大门上了锁,好多的藏家去找产的麻烦吧!楼下有一个女的客户来一个说一个说长昊是骗子,比德是骗子,大家别再上当了!在这里,我好想说一句,他们是地地道道的骗子,不会长久的!不久的将来,产公司一定倒闭关门!
Ⅱ 款顶级 Android 离线音乐播放器,哪款最适合
Shuttle+音乐播放器很不错。
特色功能:
·六轨音乐均衡器连低音助推器
·无缝播放
·歌回词答演示 (支持内嵌歌词及透过MusixMatch服务配对歌词)
·自动专辑封面下载
还有AIMP播放器也可以。
可以播放目前市面上的绝大部分音频格式,包括无损音乐格式的音频文件。
目前支持播放的音频格式有:
*.ape; *.mpga; *.mp3; *.wav; *.ogg; *.umx; *.mod; *.mo3; *.it; *.s3m; *.mtm; *.xm; *.aac; *.flac; *.mp4; *.m4a; *.m4b; *.mpc; *.wv; *.opus*
Ⅲ 安卓开源在线音乐播放器
这是我在CSDN上给你下载的一个android开源在线音乐播放器,jamendo,界面比较美观,可供你参考一下。
Ⅳ android开发音乐播放器MediaPlayer.prepare()
MediaPlayer类可用于控制音频/视频文件或流的播放,我曾在《Android开发之基于Service的音乐播放器》一文中介绍过它的使用。下面让我们看一下MediaPlayer类的详细介绍。
一、类结构:
java.lang.Object
↳
android.media.MediaPlayer
二、构造方法和公有方法
构造方法:
Public Constructors
MediaPlayer()
默认构造方法。
公有方法:
Public Methods
static MediaPlayer
create(Context context, Uri uri, SurfaceHolder holder)
指定从资源ID对应的资源文件中来装载音乐文件,同时指定了SurfaceHolder对象并返回MediaPlyaer对象。
static MediaPlayer
create(Context context, int resid)
指定从资源ID对应的资源文件中来装载音乐文件,并返回新创建的MediaPlyaer对象。
static MediaPlayer
create(Context context, Uri uri)
从指定Uri装在音频文件,并返回新创建的MediaPlayer对象。
int
getCurrentPosition()
获取当前播放的位置。
int
getDuration()
获取音频的时长。
int
getVideoHeight()
获取视频的高度。
int
getVideoWidth()
获取视频的宽度。
boolean
isLooping()
判断MediaPlayer是否正在循环播放。
boolean
isPlaying()
判断MediaPlayer是否正在播放。
void
pause()
暂停播放。
void
prepare()
准备播放(装载音频),调用此方法会使MediaPlayer进入Prepared状态。
void
prepareAsync()
准备播放异步音频。
void
release()
释放媒体资源。
void
reset()
重置MediaPlayer进入未初始化状态。
void
seekTo(int msec)
寻找指定的时间位置。
void
setAudioStreamType(int streamtype)
设置音频流的类型。
void
setDataSource(String path)
指定装载path路径所代表的文件。
void
setDataSource(Context context, Uri uri, Map<String, String headers)
指定装载uri所代表的文件。
void
setDataSource(Context context, Uri uri)
指定装载uri所代表的文件。
void
setDataSource(FileDescriptor fd, long offset, long length)
指定装载fd所代表的文件中从offset开始长度为length的文件内容。
void
setDataSource(FileDescriptor fd)
指定装载fd所代表的文件。
void
setDisplay(SurfaceHolder sh)
设置显示方式。
void
setLooping(boolean looping)
设置是否循环播放。
void
setNextMediaPlayer(MediaPlayer next)
设置当前流媒体播放完毕,下一个播放的MediaPlayer。
void
setOnBufferingUpdateListener(MediaPlayer.OnBufferingUpdateListener listener)
注册一个回调函数,在网络视频流缓冲变化时调用。
void
setOnCompletionListener(MediaPlayer.OnCompletionListener listener)
为Media Player的播放完成事件绑定事件监听器。
void
setOnErrorListener(MediaPlayer.OnErrorListener listener)
为MediaPlayer的播放错误事件绑定事件监听器。
void
setOnPreparedListener(MediaPlayer.OnPreparedListener listener)
当MediaPlayer调用prepare()方法时触发该监听器。
void
setOnSeekCompleteListener(MediaPlayer.OnSeekCompleteListener listener)
当MediaPlayer调用seek()方法时触发该监听器。
void
setOnVideoSizeChangedListener(MediaPlayer.OnVideoSizeChangedListener listener)
注册一个用于监听视频大小改变的监听器。
void
setScreenOnWhilePlaying(boolean screenOn)
置是否使用SurfaceHolder来显示。
void
setSurface(Surface surface)
设置Surface。
void
setVideoScalingMode(int mode)
设置视频缩放的模式。
void
setVolume(float leftVolume, float rightVolume)
设置播放器的音量。
void
setWakeMode(Context context, int mode)
为MediaPlayer设置低级电源管理行为。.
void
start()
开始或恢复播放。
void
stop()
停止播放。
三、常用方法分析:
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() {
@Override
publicvoid onStopTrackingTouch(SeekBar seekBar) {
//TODO Auto-generated method stub
//当拖动停止后,控制mediaPlayer播放指定位置的音乐
MusicService.mediaPlayer.seekTo(seekBar.getProgress());
MusicService.isChanging=false;
}
@Override
publicvoid onStartTrackingTouch(SeekBar seekBar) {
//TODO Auto-generated method stub
MusicService.isChanging=true;
}
@Override
publicvoid 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() {
@Override
publicvoid 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() {
@Override
publicboolean onError(MediaPlayer mp,int what,int extra) {
//TODO Auto-generated method stub
//针对错误进行相应的处理
// ... ...
}
});
//为MediaPlayer的播放完成讲件绑定市件监听器
mPlayer.setOnCompletionListener(new OnCompletionListener() {
@Override
publicvoid onCompletion(MediaPlayer mp) {
//TODO Auto-generated method stub
current++;
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的音乐播放器,要求尽量小巧
轻听播放器,界面特别漂亮,还很小巧,我的备用机多亲手机,就安装的这个,特别好用。
Ⅵ 做的android里的是音乐播放器,
太模糊了,大概看出来的View.onClick方法空指针,指向的是另一行的performlick方法,所以是performClick前边的View对象为空,漏掉了findViewById?
Ⅶ Android系统上有哪些优秀的本地音乐播放器
国产的:天天动听 美丽的界面 桌面动态歌词 可以设透明度 可以播放无损格式的音乐 可专以调节音效的均属衡 低音调节很方便 可以在线搜索下载音乐相关图片 歌词 当然还可以在线听音乐下载音乐 很不错的一款音乐播放软件 国外的: PowerAMP Music Player ,是android设备中一个音质非常优秀的音频播放器,PowerAMP堪称Android系统中用户体验最佳的音乐播放器,支持Android 2.0以上ROM,界面美观,音质出众。可调节EQ、单独的高低音调。支持MP3、WAV、WMA、音乐播放,APE、FLAC等无损音质,支持CUE列表,整体播放素质相当不错,。
Ⅷ 目前Android 系统最好用的音乐播放器是哪款
poweramp,公认最好的音乐播放器,不管是操控还是音质还是功能。
Ⅸ 如何写一个正经的android音乐播放器
Github地址:https://github.com/boybeak/Demos
以前写过很多次音乐播放器,但是总有一些问题出现,例如:
1,音乐长时间播放问题(即便是放在service中去播放,依然会被杀死);
2,音乐的播放进度如何掌握?(如何利用mediaplayer.getCurrentPosition()来有效的通知界面变更进度?);
3,在我以往的经验中,音乐播放完毕下一曲时候,经常出现当前音乐播放还差几秒钟的时候就下一曲了的情况。
从网上找到教程中,通常都是一个播放器的demo,简单的直接把MediaPlayer放在了一个Activity中去操作,稍有良心的教程把MediaPlayer放在了Servic中,但是这是远远不够的。
最好的教程还是谷歌官方的Training和API Guides,尽管很久以前就简单粗暴的读过有关service的文档,但是,古人都说温故而知新嘛,经过这次温故,对比以前的代码经验,觉得可以有更好的方式来实现一个音乐播放器。遂决定重新写一