导航:首页 > 操作系统 > android音乐播放器开源

android音乐播放器开源

发布时间:2023-01-26 07:30:24

Ⅰ 盘点 6 个开源的音乐播放器

盘点几个开源的音乐播放器,在这些项目中你可以学习到 React、Vue、Kotlin等相关的技术栈。有的是仿当前比较火的音乐应用,而有的是开发者自主开发。

本期推荐开源项目目录:

1. 仿 QQ 音乐

2. 网易云音乐

3. Material 主题音乐播放器

4. 不太现代的音乐播放器

5. 专注于免费流媒体资源的桌面音乐播放器

仿 QQ 音乐

模仿 QQ 音乐网页版界面,采用 flexbox 和 position 布局,支持响应式。

开源地址:https://github.com/maomao1996/Vue-mmPlayer

网易云音乐

基于 React 的在线音乐播放器,这个开源项目是高仿移动端安卓的网易云音乐。

开源地址:https://github.com/maomao1996/react-music

Material 主题音乐播放器

Material 主题音乐播放器,适用于手机端、穿戴设备端、 汽车 端等。该项目基于最新的开发工具和设计模式构建,用 Kotlin 编写、android 架构组件、数据绑定等等。

开源地址:https://github.com/naman14/TimberX

不太现代的音乐播放器

Clementine 是适用于 Windows、Linux 和 macOS 的现代音乐播放器和库管理器。虽然开发者标榜现代,但是看了它的 UI,发觉没那么现代。

它的灵感来源于 Amarok 1.4, 致力于开发一个易于使用的界面,令你能够快速地搜索和播放音乐。

开源地址:https://github.com/clementine-player/Clementine

专注于免费流媒体资源的桌面音乐播放器

nuclear 是一个从互联网的各个角落拉取免费的资源的免费流媒体播放器。

如果你知道 mps-youtube 这个项目,该项目与之类似,但是我们提供了一个美观、强大的图形用户界面。nuclear 更加的专注于音频。想象一下Spotify,你无须为音乐付费,而且你比Spotify有更多的音库来源的选择。

开源地址:https://github.com/nukeop/nuclear

逛逛 GitHub 每天推荐一个好玩有趣的开源项目。 历史 推荐的开源项目已经收录到 GitHub 项目,欢迎 Star:

Ⅱ 款顶级 Android 离线音乐播放器,哪款最适合

Shuttle+音乐播放器很不错。

特色功能:
·六轨音乐均衡器连低音助推器
·无缝播放
·歌词演示 (支持内嵌歌词及透过MusixMatch服务配对歌词)
·自动专辑封面下载

还有AIMP播放器也可以。

可以播放目前市面上的绝大部分音频格式,包括无损音乐格式的音频文件。 
目前支持播放的音频格式有:
*.ape; *.mpga; *.mp3; *.wav; *.ogg; *.umx; *.mod; *.mo3; *.it; *.s3m; *.mtm; *.xm; *.aac; *.flac; *.mp4; *.m4a; *.m4b; *.mpc; *.wv; *.opus*

Ⅲ 一只飞翔的小鸟图标是什么音乐播放器

songbird音乐播放器。
Songbird是Mozilla下的一款开源的跨平台音乐播放器。其Android平台界面非常直观,可以自动将你手机中的歌曲扫描并按照歌手曲目等分类给你进行选择,播放界面和选歌界面可实现迅速切换。于11年3月登陆已经有整一个年头,支持蓝牙操作,有Widget内置26种语言包括中文。
Songbird播放器作为一款音乐管理,还集成了强劲的网络冲浪播放器它会自动搜索所在页面的所有音乐文件,然后自动在下方和左侧栏生成网页音乐播放列表。你可以将列表中的音乐播放加入本地列表加入本地音乐库,当然还可以直接下载。

Ⅳ android有没有能播放rtmp流媒体的开源播放器代码

安卓设备上的播放——Vitamio安卓设备3.0以上原生支持hls,但是不支持rtmp,为了统一以及低版本兼容,可以使用第三方的一个播放器库——vitamio。hls播放如果仅需要在移动设备的WebView上播放,可以选择使用html中嵌入hls播放。如下html能够在所有Safari或者安卓3.0以上的WebView上播放。这样就不需要使用第三方的播放器。VideoJS如果要让网页支持在所有浏览器上播放,就需要使用第三方的播放器。VideoJs是一个较好的播放器库,完全免费,不像JWPlayer一样需要付费才能使用一些高级功能。

Ⅳ android音乐播放器开发问题

删除也就从你的列表中拿到指定歌曲的position 然后从数据源中移除 新建播放列表的话你可以重新new一个List 将你要放到新建播放列表中的歌曲的地址add进去不就行了么?

Ⅵ 求手机中能播放ape,flac格式音乐的播放器。

用户可以玩ape,FLAC,VLC播放器,Clementine播放器,Foobar2000播放器,Audacious播放器等。

具体情况如下:

1.主流商业软件

比如有的云,有的Q,有的酷,有的千等等,虽然商业化很严重,广告也很烦人,但不能否认这些产品都是好的,为了迎合大众他们的质量可以得到保证。

VLC播放器

虽然VLC主要用作视频播放器,但实际上它的音频回放能力也非常强。

Ⅶ android音乐播放器开发,这部分是如何实现的

安卓系统自带了MediaPlayer类,直接调用就可以播放音乐了。看API就可以了。如果英文不好,可以看Mars的安卓视频教程的第一季的最后几集,就是教安卓音乐播放器开发的。

Ⅷ 基于Android音乐播放器源代码(正常播放、有列表)

package my.android.players;

import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageButton;
import android.widget.TextView;

public class mainActivity extends Activity {

private List<String> myMusicList=new ArrayList<String>();
//当前播放歌曲的索引
private int currentListItem=0;
//音乐的路径
private static final String MUSIC_PATH="/sdcard/mp3";
//播放对象
private MediaPlayer myMediaPlayer;
private TextView m_TextView;
//播放按钮
private ImageButton m_start;
private ImageButton m_stop;
private ImageButton m_next;
private ImageButton m_last;
/*设定bIsPaused一开始为false */
private boolean bIsRun = false;
private boolean isplay;

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);

myMediaPlayer=new MediaPlayer();

musicList();
m_TextView=(TextView)findViewById(R.id.mtextview);
m_start=(ImageButton)findViewById(R.id.imgbtn_start);
m_stop=(ImageButton)findViewById(R.id.imgbtn_stop);
m_next=(ImageButton)findViewById(R.id.imgbtn_next);
m_last=(ImageButton)findViewById(R.id.imgbtn_last);
listener();

Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();
currentListItem = bundle.getInt("currentListItem");
isplay=bundle.getBoolean("isplay");
if(isplay==true)
{
bIsRun=false;
playMusic(MUSIC_PATH+"/"+myMusicList.get(currentListItem));
}
}
//监听事件
void listener(){

//开始
m_start.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
try
{
if(myMediaPlayer.isPlaying()==true)
{
myMediaPlayer.pause();
m_start.setImageResource(R.drawable.pause);
}
else
{
playMusic(MUSIC_PATH+"/"+myMusicList.get(currentListItem));
}

}
catch (IllegalStateException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}

}
});
//下一首
m_next.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
nextMusic();
}
});

//上一首
m_last.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub

lastMusic();
}
});

//停止
m_stop.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
stopMusic();
}
});

myMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

@Override
public void onCompletion(MediaPlayer mp) {
// TODO Auto-generated method stub
nextMusic();
}
});
}
//播放音乐
void playMusic(String path){
try {
if(bIsRun==false)
{
myMediaPlayer.reset();
myMediaPlayer.setDataSource(path);
myMediaPlayer.prepare();
myMediaPlayer.start();
/*
* 取出歌曲名的.mp3后缀
* */
String str=(myMusicList.get(currentListItem)).toString();
System.out.println(str);
String str1[]=str.split("\\.");
System.out.println(str1[0]);
m_TextView.setText(str1[0]);
}
else
{
myMediaPlayer.start();
}
m_start.setImageResource(R.drawable.start);
bIsRun=true;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}

//下一首
void nextMusic(){
if(++currentListItem>=myMusicList.size()){
currentListItem=0;
}
bIsRun=false;
playMusic(MUSIC_PATH+"/"+myMusicList.get(currentListItem));
}

//上一首
void lastMusic(){
if(--currentListItem<0)
currentListItem=myMusicList.size()-1;
bIsRun=false;
playMusic(MUSIC_PATH+"/"+myMusicList.get(currentListItem));
}
//停止
void stopMusic() {

if (myMediaPlayer.isPlaying()) {
m_start.setImageResource(R.drawable.pause);
myMediaPlayer.stop();// 停止
bIsRun=false;
}
else
playMusic(MUSIC_PATH+"/"+myMusicList.get(currentListItem));
}
//当用户返回时结束音乐并释放音乐对象
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if(keyCode==KeyEvent.KEYCODE_BACK){
new AlertDialog.Builder(mainActivity.this).setTitle("message")
.setIcon(android.R.drawable.dialog_frame)
.setMessage("你确定要离开吗?")
.setPositiveButton("确定",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
myMediaPlayer.stop();
myMediaPlayer.release();
finish();
}
}).setNegativeButton("取消",new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub

}
}).show();

}
return super.onKeyDown(keyCode, event);
}
/**
* 文件过滤器
*
* @author
*
*/
class MusicFilter implements FilenameFilter {

@Override
public boolean accept(File dir, String filename) {

return (filename.endsWith(".mp3"));
}

}
//绑定音乐
void musicList(){
try{
File home=new File(MUSIC_PATH);
if(!home.exists())
home.mkdirs();
if(home.listFiles(new MusicFilter()).length>=0){
for(File file:home.listFiles(new MusicFilter())){
myMusicList.add(file.getName().toString());
}
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}

package my.android.players;

import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.widget.AdapterView;
import android.widget.ArrayAdapter;

import android.widget.ListView;

public class Activity01 extends Activity {

//播放列表
private List<String> myMusicList=new ArrayList<String>();
//当前播放歌曲的索引
private int currentListItem;
//音乐的路径
private static final String MUSIC_PATH="/sdcard/mp3";
//播放列表
private ListView m_ListView;

private boolean isplay=true;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

m_ListView=(ListView)findViewById(R.id.lv_music);

musicList();

//当选择列表项时播放音乐
m_ListView.setOnItemClickListener(new ListView.OnItemClickListener() {

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
currentListItem = arg2;
Intent intent = new Intent();
Bundle mBundle=new Bundle();
mBundle.putInt("currentListItem", currentListItem);
mBundle.putBoolean("isplay", isplay);
intent.putExtras(mBundle);
intent.setClass(Activity01.this,mainActivity.class);
startActivity(intent);
finish();
}
});
}

/**
* 文件过滤器
*
* @author
*
*/
class MusicFilter implements FilenameFilter {

@Override
public boolean accept(File dir, String filename) {

return (filename.endsWith(".mp3"));
}

}

//绑定音乐
void musicList(){
try{
File home=new File(MUSIC_PATH);
if(!home.exists())
home.mkdirs();
if(home.listFiles(new MusicFilter()).length>=0){
for(File file:home.listFiles(new MusicFilter())){
myMusicList.add(file.getName().toString());
}
ArrayAdapter<String> musicList=new ArrayAdapter<String>
(Activity01.this,android.R.layout.simple_list_item_1, myMusicList);
m_ListView.setAdapter(musicList);
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
}

Ⅸ android开发 类似音乐播放器 在本地音乐这个activity里点击收藏,把当前播放的歌曲加入我的最爱

  1. 监听按钮事件

  2. 当用户点击时,获取当前歌曲信息,存入数据库(我的最爱)。

  3. 更新我的最爱中的列表,并通知刷新数据。

Ⅹ android 音乐播放器哪个好用

安卓 音乐发烧友必备:

poweramp音乐播放器,支持安卓musicfx音效插件进入软件音频设置开启musicfx。立体声效果附带自定义设置,立体声效果长按按钮旁字体进入自定义界面。支持音调,可进一步放大低音和高音。附带专业的音频压限器。支持自定义EQ设置。(ROOT权限下用幸运破解器可完美破解)

Rockbox音乐播放器,拥有最为强大而复杂的EQ自定义设置,专业级音乐播放器,普通人慎用,由于其用法设置过于复杂,不适合新手使用。

以上两款是音质最强的安卓音乐播放器。建议使用:poweramp音乐播放器

其他的天天动听,酷狗音乐,酷我音乐盒,多米音乐,是国产的音乐播放器,虽有华丽的界面但音质被poweramp和Rockbox完全秒杀。

阅读全文

与android音乐播放器开源相关的资料

热点内容
夸克解压压缩文件 浏览:915
怎么买卖副图源码 浏览:660
广东农信app怎么更改预留手机号码 浏览:777
嵌套页面php 浏览:566
安卓手机怎么调到微信聊天模式 浏览:857
java博客开源系统 浏览:719
男人之间的加密对话日语 浏览:359
怎么连远程连接服务器 浏览:11
安卓二手手机该如何检测 浏览:213
微信可以共享图片文件夹吗 浏览:80
联通wifi加密码 浏览:643
录屏文件夹小米 浏览:548
车上的app怎么重设 浏览:24
指定文件夹属性 浏览:131
linuxphp编程 浏览:337
以下不正确的是云服务器 浏览:909
琉璃神社压缩密码 浏览:715
大一学生解压视频 浏览:376
单位电脑e盘加密输入正确密码 浏览:873
phpfileupload 浏览:634