我使用的开发版本是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;
}
//停止和释放可以忽略
}
}
}求高手给予指教~~非常感谢!
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;
}
//停止和释放可以忽略
}
}
}求高手给予指教~~非常感谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货