A. android實現音樂播放器:在菜單下怎麼實現單曲循環,順序播放,隨機播
單曲循環就在當前Activity中重新調用你初始化播放的的代碼就可以了順序播放就是直接獲取你歌曲的List下一個position就可以了隨機播放就用Random這個類,播放這個類隨機生成的一個數就可以了
B. 從網上下載了一個Android音樂播放器源碼,虛擬機可以正常運行,但是真機閃退,如何調試
看報錯LOG啊 聽描述是不是許可權問題。沒log沒人能准確回答
C. 基於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();
}
}
}
D. Android音樂播放器源代碼,不要求太大,功能最好全一點,代碼能在eclipse上運行的,急用謝謝
去「源碼之家」或「站長下載」這兩個網站上的源碼是最多的,我原來學習就是去這兩個站上下載的。
E. Android開發,簡單的音樂播放器的完整代碼,含布局的。
手機設為離線模式不是無法定位,而是需要較長的時間,導航時手機會尋找衛星,但是,如果沒有輔助定位(A-GPS)的幫助,它會浪費很多時間去找合適的衛星,而使用A-GPS就需要通訊網路的支持,它能夠先計算你所在的大概位置,然後就有針對性地搜索衛星,快很多。
而車載導航儀就屬於專業、專門的設備,接收能力和功率等硬體設計都可以使其很方便和很專業地搜索衛星,即使衛星信號不太好,也能搜得到。它們的工作原理大致相同,只是功率和所使用的軟體不同
F. android開發 類似音樂播放器 在本地音樂這個activity里點擊收藏,把當前播放的歌曲加入我的最愛
監聽按鈕事件
當用戶點擊時,獲取當前歌曲信息,存入資料庫(我的最愛)。
更新我的最愛中的列表,並通知刷新數據。
G. 如何開發一款android本地音樂播放器
酷狗的歌詞逐字匹配 是因為酷狗歌詞的製作過程 你用酷狗製作過歌詞嗎? 如果你想做成一樣的 我建議你去製作一份歌詞才能明白。。。只用LRC寫 即使加點或者空格什麼的 也一定會影響美觀 如果你根據酷狗的歌詞製作步驟能寫出相關演算法 那程序里的演算法就好寫了。。。
H. 急急急,求一份android音樂播放器源代碼,功能不需太復雜,有下載、播放,歌曲列表等功能即可
今天我也想在這說說我對長昊,也就是比德公司的真實情況,我本人剛剛有一件藏品被流拍回來,當時我的是一件真品瓷器,本來我想50萬元就賣,公司的業務員說這件東西如果那麼便宜賣就虧了!讓我160萬元起拍,說歷史上有人成交在400多萬元!我說我沒有那麼多的錢,就交了一萬元,他們公司就定160萬元起拍,讓我交一萬元也可以,再寫一條子說如果成交了就再補20000元給他們,我說簽了合同,等啊等,今年春拍5.16號那天我因飛機誤點沒有趕上,我就讓公司給我看錄相,他們說沒有,我也沒有看,反正是流拍了,當時大門上了鎖,好多的藏家去找產的麻煩吧!樓下有一個女的客戶來一個說一個說長昊是騙子,比德是騙子,大家別再上當了!在這里,我好想說一句,他們是地地道道的騙子,不會長久的!不久的將來,產公司一定倒閉關門!
I. android音樂播放器源碼 需要aidl么
嚴格來說,線程是共享資源的,所以線程之間是不存在通信的,Android裡面的Handle是用來解決非同步調用的,這個觀念很重要,想明白了,代碼也就寫的更合理了。
進程之間內存等資源是隔離的,而AIDL,是Android提供的跨進程通信IPC工具Binder的具體使用方法,跟其他Linux跨進程通信(socket,管道,能存共享等)在概念上沒啥差。所以要實現跨進程的內存訪問(比如數據傳輸,函數跨進程同步調用等)就需要了AIDL了,當然了AIDL並不是Android中跨進程通信的唯一選擇,socket(systemServer進程與zygote進程,pkms調用install進程,MountService與vold進程通信都是通過socket),共享內存(sqlite3查詢就用了)等都可以用的,但是沒有Binder通過AIDL好用罷了。
J. 安卓音樂播放器代碼怎樣實現圖片與音樂綁定每播一首歌就出現相應的圖片。是本地音樂播放器。
這個用酷我播放器就可以