播放本地音乐不能播放,求解决
我的代码是这样的
public void PlayMusic(){
mp.reset();
mp.setDataSource("/assets/aaa.mp3");
mp.prepare();
mp.start();
}
点播放没有效果 求解答 求解答

解决方案 »

  1.   

    感觉你写的很奇怪。
    1,最好用service控制音乐播放,音乐文件放在res/raw/mayday.mp3
    2,serviceplayer要继承service。
    3,在onCreate中创建加载res/raw/mayday
    mPlayer=MediaPlayer.create(this, R.raw.mayday);4,在onStart中
    mPlayer,start();
    我也是初学者,学过一点这个地方。
      

  2.   

    package com.Mp3;import java.io.File;
    import java.io.FilenameFilter;
    import java.io.IOException;
    import java.text.Collator;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.List;import android.R.string;
    import android.app.Activity;
    import android.app.ListActivity;
    import android.media.MediaPlayer;
    import android.os.Bundle;
    import android.text.style.UpdateLayout;
    import android.util.Log;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.ArrayAdapter;
    import android.widget.ImageButton;
    import android.widget.ListView;class Mp3Filter implements FilenameFilter { @Override
    public boolean accept(File dir, String name) { return (name.endsWith(".mp3"));
    }}public class Mp3PlayerActivity extends ListActivity {
        /** Called when the activity is first created. */
        
        private static final String  SD_PATH = new String("/sdcard/music/");
        private List<String> songs = new ArrayList<String>();
        private MediaPlayer mp = new MediaPlayer();
        private ImageButton stop = null;
        private ImageButton pause =null;
        private ImageButton play =null;
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);       pause = (ImageButton)findViewById(R.id.pause);
           stop = (ImageButton)findViewById(R.id.stop);
           play = (ImageButton)findViewById(R.id.play);       play.setOnClickListener(musicListener);
           pause.setOnClickListener(musicListener);
           stop.setOnClickListener(musicListener); 
        
           UpdateList();
            
            
        }
      
       private OnClickListener musicListener = new OnClickListener() {

    @Override
    public void onClick(View v) {
    switch (v.getId()) {
    case R.id.pause:
    mp.pause();
    break;
    case R.id.stop:
    mp.stop();
    break;
    case R.id.play:
    mp.start();
    break;
    default:
    break;
    }

    }
    };
      
        
    private void UpdateList() {
    File home = new File(SD_PATH);
    if(home.listFiles(new Mp3Filter()).length>0){
     for(File file:home.listFiles(new Mp3Filter())){
    songs.add(file.getName()); 
     }
     
     Collections.sort(songs);
    ArrayAdapter<String> songList = new ArrayAdapter<String>(this, R.layout.song_item, songs);
     setListAdapter(songList);//extends ListActivity 不然要报错
    }
    }



    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
    // TODO Auto-generated method stub
    super.onListItemClick(l, v, position, id);


    try {
    mp.reset();
    mp.setDataSource(SD_PATH+songs.get(position));
    mp.prepare();
    mp.start(); } catch (IOException e) {
     Log.v(getString(R.string.app_name), e.getMessage());
    }

    }
    @Override
    protected void onDestroy() {
    super.onDestroy();
    mp.release();
    }
    }