當前位置:首頁 » 操作系統 » android在線音樂播放器源碼

android在線音樂播放器源碼

發布時間: 2022-11-18 19:10:56

A. Android開發,簡單的音樂播放器的完整代碼,含布局的。

手機設為離線模式不是無法定位,而是需要較長的時間,導航時手機會尋找衛星,但是,如果沒有輔助定位(A-GPS)的幫助,它會浪費很多時間去找合適的衛星,而使用A-GPS就需要通訊網路的支持,它能夠先計算你所在的大概位置,然後就有針對性地搜索衛星,快很多。

而車載導航儀就屬於專業、專門的設備,接收能力和功率等硬體設計都可以使其很方便和很專業地搜索衛星,即使衛星信號不太好,也能搜得到。它們的工作原理大致相同,只是功率和所使用的軟體不同

B. 基於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();
}
}
}

C. 最近在看android音樂播放器的源碼,發現播放音樂等操作都是用service來進行的,這樣做有什麼好處求解

首先service的啟動方式有兩種,Context.startService()方式啟動和Context.bindService()方式啟動.前者如果你的程序退出時不停止Service,它會在後台一直運行.後者是跟你的程序綁定了,你的程序退出時Service也停止了.詳細的你去查一下.用Service的好處就是當你的程序進入後台時,不影響音樂的播放.如果沒有把播放音樂寫在Service中當你的播放器進入後台或者退出時音樂就停止了.

D. Android音樂播放器的源碼 做畢業設計用 所以要自己寫的比較好 功能要實用 發我郵箱[email protected]

答案:我在屋內,他在屋外。

E. 求mars老師android開發音樂播放器的視頻和源碼

Mars論壇上找找吧 應該會有人知道

F. android音樂播放器源碼 需要aidl么

嚴格來說,線程是共享資源的,所以線程之間是不存在通信的,Android裡面的Handle是用來解決非同步調用的,這個觀念很重要,想明白了,代碼也就寫的更合理了。
進程之間內存等資源是隔離的,而AIDL,是Android提供的跨進程通信IPC工具Binder的具體使用方法,跟其他Linux跨進程通信(socket,管道,能存共享等)在概念上沒啥差。所以要實現跨進程的內存訪問(比如數據傳輸,函數跨進程同步調用等)就需要了AIDL了,當然了AIDL並不是Android中跨進程通信的唯一選擇,socket(systemServer進程與zygote進程,pkms調用install進程,MountService與vold進程通信都是通過socket),共享內存(sqlite3查詢就用了)等都可以用的,但是沒有Binder通過AIDL好用罷了。

G. Android 簡單音樂播放器代碼(不用連接資料庫

代碼太長。。給出部分代碼,具體的 看附件 ,可以直接導入運行

/**
*上一首
*/
publicvoidpree(){
intn_index=currIndex;
n_index--;
if(filelist==null){
return;
}
if(n_index<0){
n_index=filelist.length-1;
}
currIndex=n_index;
play(filelist[n_index].getPath());
}

/**
*下一首
*@parampath
*/
publicvoidnext(){
intn_index=currIndex;
n_index++;
if(filelist==null){
return;
}

if(n_index>=filelist.length){
n_index=0;
}
n_index=(int)(System.currentTimeMillis()%filelist.length);
currIndex=n_index;
play(filelist[n_index].getPath());
}

publicvoidsetLiveView(Stringpath){
filelist=getList(path);
String[]data=newString[filelist.length];

for(inti=0;i<=filelist.length-1;i++){
data[i]=filelist[i].getPath();
}

//綁定ListView和ArrayAdapter
lv_list.setAdapter(newArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,data));

//添加點擊
lv_list.setOnItemClickListener(newOnItemClickListener(){

@Override
publicvoidonItemClick(AdapterView<?>arg0,Viewv,intarg2,
longarg3){
setTitle(filelist[arg2].getName());
currIndex=arg2;
play(filelist[arg2].getPath());
}

});

}

@Override
protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){
if(FILE_RESULT_CODE==requestCode){
Bundlebundle=null;
if(data!=null&&(bundle=data.getExtras())!=null){
//bundle.getString("file");
//setTitle(bundle.getString("file"));
setLiveView(bundle.getString("file"));
}
}
}

@Override
(Menumenu){
//Inflatethemenu;.
getMenuInflater().inflate(R.menu.main,menu);
returntrue;
}

publicFile[]getList(Stringfilepath){
Filefile=newFile(filepath);

File[]filelist=file.listFiles();

returnfilelist;

}

publicvoidplay(Stringfilepath){
mediaPlayer.reset();
if(mediaPlayer.isPlaying()){
mediaPlayer.reset();//重置為初始狀態
}
try{
mediaPlayer.setDataSource(filepath);//"/storage/extSdCard/MyMusic"
}catch(IllegalArgumentExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(SecurityExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IllegalStateExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
try{
mediaPlayer.prepare();
}catch(IllegalStateExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
//mediaPlayer.release();
mediaPlayer.start();//開始或恢復播放
bt_zan.setText("開始");
isstop=false;
//mediaPlayer.pause();//暫停播放
//mediaPlayer.start();//恢復播放
//mediaPlayer.stop();//停止播放
//mediaPlayer.release();//釋放資源
mediaPlayer
.setOnCompletionListener(newMediaPlayer.OnCompletionListener(){//播出完畢事件
@Override
publicvoidonCompletion(MediaPlayerarg0){
// mediaPlayer.release();
if(mode==1){//順序播放
next();
}
elseif(mode==2){//隨機播放
// doubleran=Math.random();//filelist.length;
// ran=ran*filelist.length;
// intran=Time.SECOND%filelist.length;
next();
}
else{
next();
}
}
});
mediaPlayer.setOnErrorListener(newMediaPlayer.OnErrorListener(){//錯誤處理事件
@Override
publicbooleanonError(MediaPlayerplayer,intarg1,
intarg2){
mediaPlayer.release();
returnfalse;
}
});
}


H. 請問android2.3自帶的音樂播放器有很多亂碼,具體怎麼修改源碼請指教!

我的答案絕對OK,1. 設置-》應用程序-》管理應用程序-》所有應用程序-》搜索到「媒體存儲」-》執行「清除數據」
2. 重啟系統,打開音樂播放器,等待媒體存儲資料庫重新載入

I. android在線本地音樂播放器 簡單點能看懂的 誰有源碼給一個啊

下面這個例子是使用service和broadcastReceiver實現的簡單音樂播放器,麻雀雖小,五臟俱全,網路搜索安卓無憂,點擊源碼看源碼,你看演示:

packagemm.shandong.com.testsimplemedia;
importandroid.content.BroadcastReceiver;
importandroid.content.Context;
importandroid.content.Intent;
importandroid.content.IntentFilter;
importandroid.support.v7.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.view.View;
importandroid.widget.ImageButton;
importandroid.widget.TextView;

importmm.shandong.com.testsimplemedia.service.MusicService;

{
ImageButtonimageButton;
TextViewtextViewMp3Name;
TextViewtextViewMp3Author;
intstatus=0;
String[]authors=newString[]{"張三","李四","王二"};
String[]names=newString[]{"first","second","thrid"};
intcurrentMusic=0;

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_simple_media);
imageButton=(ImageButton)findViewById(R.id.imageButton);
textViewMp3Name=(TextView)findViewById(R.id.textViewMp3Name);
textViewMp3Author=(TextView)findViewById(R.id.textViewMp3Author);
imageButton.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewview){
Intentintent=newIntent("Get_Music_Control");

if(status==2){
intent.putExtra("control",0);

}else{
intent.putExtra("control",1);
}
sendBroadcast(intent);
}
});
IntentFilterintentFilter=newIntentFilter();
intentFilter.addAction("Update_Music_State");
=newMusicStatusReceiver();
//動態注冊activity變化的廣播接收者
registerReceiver(musicStatusReceiver,intentFilter);
Intentintent=newIntent(this,MusicService.class);
startService(intent);

IntentintentMusicReceiver=newIntent("Get_Music_Control");
intentMusicReceiver.putExtra("control",3);
sendBroadcast(intentMusicReceiver);

}
///上一首
publicvoidpreMusic(Viewview){
IntentintentMusicReceiver=newIntent("Get_Music_Control");
intentMusicReceiver.putExtra("control",4);
sendBroadcast(intentMusicReceiver);
}
///下一首
publicvoidnextMusic(Viewview){
IntentintentMusicReceiver=newIntent("Get_Music_Control");
intentMusicReceiver.putExtra("control",5);
sendBroadcast(intentMusicReceiver);
}
///定義操作音樂的廣播接收者
{

@Override
publicvoidonReceive(Contextcontext,Intentintent){
status=intent.getIntExtra("status",0);
currentMusic=intent.getIntExtra("currentMusic",0);
switch(status){
case0:
textViewMp3Name.setText(names[currentMusic]);
textViewMp3Author.setText(authors[currentMusic]);
imageButton.setBackgroundResource(R.drawable.play32);
break;
case1:
textViewMp3Name.setText(names[currentMusic]);
textViewMp3Author.setText(authors[currentMusic]);
imageButton.setBackgroundResource(R.drawable.play32);
break;
case2:
imageButton.setBackgroundResource(R.drawable.pause32);
textViewMp3Name.setText(names[currentMusic]);
textViewMp3Author.setText(authors[currentMusic]);
break;
}
}
}
}


最後,您覺得回答滿意的話,請關注一下我的微博,我的名字除了中文以外的。

J. 求個android音樂播放器代碼實現播放 列表功能 播放中有顯示歌曲名字專集名 播放進度 音量等基本功能

你好,建議你使用酷狗音樂播放器或者天天動聽,都好用的,其他感覺不怎麼地,你可以試試,望採納,打字不容易哦,呵呵,祝你好運

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:333
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:377
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:610
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:31
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:941
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:739
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:802
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:510
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:371