java–mediaPlayer错误-38,0

java–mediaPlayer错误-38,0,第1张

概述我尝试做简单的在线广播播放器.这是流http:/adio-electron.ru:8000/96的地址这是我的代码.MyActivity.javapackagecom.example.untitled2;importandroid.app.Activity;importandroid.media.AudioManager;importandroid.media.MediaPlayer;importandroid.net.Uri;im

我尝试做简单的在线广播播放器.这是流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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1103042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存