android MediaPlayer.prepare的问题

wangtao4226 2012-07-09 11:31:36
07-09 11:32:00.679: E/MediaPlayer(5397): error (12, 0)
07-09 11:32:00.679: E/MediaPlayer(5397): error (6, 0)
07-09 11:32:00.679: W/System.err(5397): java.io.IOException: Prepare failed.: status=0xC
07-09 11:32:00.679: W/System.err(5397): at android.media.MediaPlayer.prepare(Native Method)
07-09 11:32:00.679: W/System.err(5397):



public class WifiActivityActivity extends Activity {
private Button btn_01;
private WifiManager mWifiManager;
private String TAG = "WifiActivityActivity";

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_01 = (Button) findViewById(R.id.button1);
btn_01.setOnClickListener(new OnClickListener() {

@SuppressLint("ParserError")
@Override
public void onClick(View v) {
mWifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
Log.i(TAG, "mWifiManager statue" + mWifiManager.isWifiEnabled());
if (mWifiManager.isWifiEnabled() == false) {
mWifiManager.setWifiEnabled(true);
}

Message msg=mHandler.obtainMessage(1);
mHandler.sendMessage(msg);



}
});
}

public void palyStone(){
MediaPlayer mp = new MediaPlayer();
AssetManager assetMger = getAssets();
AssetFileDescriptor fileDesri;

// uri=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
try {
// mp.setDataSource(WifiActivityActivity.this, uri);
fileDesri = assetMger.openFd("ringer/ring_wifi_error.mp3");
mp.setDataSource(fileDesri.getFileDescriptor());
mp.prepare();
mp.start();
} catch (IllegalArgumentException e1) {

e1.printStackTrace();
} catch (SecurityException e1) {

e1.printStackTrace();
} catch (IllegalStateException e1) {

e1.printStackTrace();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

}
private Handler mHandler = new Handler() {

public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
palyStone();

break;

default:
break;
}

};
};
}


...全文
875 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
hvk687 2012-07-09
  • 打赏
  • 举报
回复
1. mp.setDataSource(fileDesri.getFileDescriptor());
这边设置的是路径path.直接用文件的路径就可以
2. MediaPlayer mp = new MediaPlayer();
这个东西要设置成成员变量,因为MediaPlayer用完后是要释放的,不然会有memory leak.
AMinfo 2012-07-09
  • 打赏
  • 举报
回复
文件不存在,参数传递不正确。

80,405

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧