我尝试做简单的在线广播播放器.这是流http://radio-electron.ru:8000/96的地址这是我的代码.
MyActivity.java
package com.example.unTitled2;import androID.app.Activity;import androID.media.AudioManager;import androID.media.MediaPlayer;import androID.net.Uri;import androID.os.Bundle;import androID.util.Log;import androID.vIEw.VIEw;import androID.Widget.button;import androID.Widget.Toast;import java.io.IOException;public class MyActivity extends Activity { MediaPlayer mediaPlayer; button playbutton; @OverrIDe public voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.main); } @OverrIDe public voID onStart() { super.onStart(); } @OverrIDe public voID onResume() { super.onResume(); mediaPlayer = new MediaPlayer(); playbutton = (button)findVIEwByID(R.ID.button); playbutton.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw vIEw) { if(mediaPlayer.isPlaying()) mediaPlayer.stop(); else { try { mediaPlayer.setDataSource(getApplicationContext(), Uri.parse("http://radio-electron.ru:8000/96")); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setonErrorListener(new MediaPlayer.OnErrorListener() { @OverrIDe public boolean one rror(MediaPlayer mediaPlayer, int i, int i2) { Toast.makeText(getApplicationContext(), "ERROR " + i, Toast.LENGTH_LONG).show(); playbutton.setEnabled(false); Log.d("radio", "error " + i + " " + i2); return false; //To change body of implemented methods use file | Settings | file Templates. } }); mediaPlayer.prepareAsync(); } catch (IOException e) { Toast.makeText(getApplicationContext(), "ERROR " + e, Toast.LENGTH_LONG).show(); Log.d("radio", "error " + e); } mediaPlayer.start(); } } }); }}
main.xml中
<?xml version="1.0" enCoding="utf-8"?><FrameLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:orIEntation="vertical" androID:layout_wIDth="fill_parent" androID:layout_height="fill_parent" > <button androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content" androID:text="New button" androID:ID="@+ID/button" androID:layout_gravity="center"/></FrameLayout>
我不知道,为什么我得到 – (38,0)代码,它是什么意思.
我使用Intellij IDEA并在AndroID 2.3和4.2模拟器上尝试此代码并遇到一些问题.
解决方法:
-38表示来自errno.h的ENOSYS错误代码(参见此说明https://stackoverflow.com/a/15206308/768935)
你似乎试着在准备工作完成之前开始比赛.使用setOnPreparedListener()
方法设置准备侦听器并仅在准备完成后调用start()方法.
mediaPlayer.setonPreparedListener(new MediaPlayer.OnPreparedListener() { public voID onPrepared(MediaPlayer mp) { mp.start(); }});mediaPlayer.prepareAsync();
并从代码中删除当前的mediaPlayer.start()调用.
总结以上是内存溢出为你收集整理的java – mediaPlayer错误-38,0全部内容,希望文章能够帮你解决java – mediaPlayer错误-38,0所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)