我使用的开发版本是2.2,模拟器还能很正常的播放歌曲,但是当放到真机上的时候就变成了杂音,手机系统版本是2.3.6,我使用的都是很基础的代码代码如下:
import java.io.File;import android.app.Activity;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;public class PlayActivity extends Activity{
private MediaPlayer mp;
    private TextView tv;
    private boolean isPlay    = false;
    private boolean isPause   = false;
    private boolean isStop    = false;
    private boolean isRelease = true;
    private String mp3_name;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.play);
mp3_name = getIntent().getStringExtra("mp3_name");

//获得控件
Button play = (Button) findViewById(R.id.play);
Button pause = (Button) findViewById(R.id.pause);
Button stop = (Button) findViewById(R.id.stop_mp3);
tv = (TextView) findViewById(R.id.tv);

//绑定事件
play.setOnClickListener(new MyPlayListener());
pause.setOnClickListener(new MyPauseListener());
stop.setOnClickListener(new MyStopListener());
}
    private class MyPlayListener implements OnClickListener{ public void onClick(View v) {
// TODO Auto-generated method stub
            if(isPause == true){
             mp.start();
             tv.setText("继续播放...");
             isPause = false;
             isPlay  = true;
            }else if(isRelease == true){
             //如果是手机内存的资源,不是应用内部的资源,就是用Uri
             String SDPath = Environment.getExternalStorageDirectory().getAbsolutePath();
             mp = MediaPlayer.create(PlayActivity.this, Uri.parse("file://" + SDPath + File.separator + mp3_name));
                mp.start();
                tv.setText("开始播放...");
                isRelease = false;
                isPlay    = true;
            }
            //播放和停止可以忽略
}
    
    }
    private class MyPauseListener implements OnClickListener{ public void onClick(View v) {
// TODO Auto-generated method stub
            if(isPlay == true){
             mp.pause();
             tv.setText("暂停播放...");
             isPlay  = false;
             isPause = true;
            }else if(isPause == true){
             mp.start();
             tv.setText("继续播放...");
             isPause = false;
             isPlay  = true;
            }
    //停止和释放可以忽略
}
    
    }
    private class MyStopListener implements OnClickListener{ public void onClick(View v) {
// TODO Auto-generated method stub
            if(isPlay == true){
             mp.stop();
             tv.setText("停止播放...");
             isPlay = false;
             isStop = true;
             mp.release();
             isStop    = false;
             isRelease = true;
            }else if(isPause == true){
             mp.stop();
             tv.setText("停止播放...");
             isPlay = false;
             isStop = true;
             mp.release();
             isStop    = false;
             isRelease = true;
            }
            //停止和释放可以忽略
}
    
    }
}求高手给予指教~~非常感谢!

解决方案 »

  1.   

    7月26日有一场关于电脑、软件、通信方面的在线技术对接展会,通过网络的方式举行的,方便又省事,有兴趣的朋友可以了解参加下,有it技术要转让的、可以帮助解决it难题的、有it难题需要求解的,或有要投资it技术项目的都可以去看看哦,免费参与的,地址 百度搜索“科易网”