【问题标题】:MediaPlayer start called in state 0 (Error -38, 0), android? [duplicate]MediaPlayer start 在状态 0(错误 -38, 0)中调用,android? [复制]
【发布时间】:2014-01-03 13:22:43
【问题描述】:

我正在制作一个 Android 音板应用,并且我已经放入了很多 MediaPlayer 值。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    bengalka = MediaPlayer.create(this, R.raw.bengalka);
    psiho = MediaPlayer.create(this, R.raw.cista_psihologija);
    dane = MediaPlayer.create(this, R.raw.da_ne);
    dejo = MediaPlayer.create(this, R.raw.dejo_narkomane);
    pod = MediaPlayer.create(this, R.raw.dizi_se);
    fejs = MediaPlayer.create(this, R.raw.fejslifting);
    foto = MediaPlayer.create(this, R.raw.fotomale);
    hungry = MediaPlayer.create(this, R.raw.gladan_sam);
    jasna = MediaPlayer.create(this, R.raw.jasna_pero);
    jeben = MediaPlayer.create(this, R.raw.jeben_vam_mater);
    kae = MediaPlayer.create(this, R.raw.kae_ivanisevic);
    fora = MediaPlayer.create(this, R.raw.kae_to_fora);
    gledas = MediaPlayer.create(this, R.raw.kaj_gledas);
    gledate = MediaPlayer.create(this, R.raw.kaj_vi_gledate);
    kinezi = MediaPlayer.create(this, R.raw.kineza_crnaca);
    kozo = MediaPlayer.create(this, R.raw.kozo_nepodojena);
    marino = MediaPlayer.create(this, R.raw.marino);
    mater = MediaPlayer.create(this, R.raw.mater_zbrgljavu);
    muha = MediaPlayer.create(this, R.raw.muha);
    papir = MediaPlayer.create(this, R.raw.nema_papira);
    nered = MediaPlayer.create(this, R.raw.nered);
    majku = MediaPlayer.create(this, R.raw.ne_spominji_majku);
    uroko = MediaPlayer.create(this, R.raw.nisam_se_uroko);
    odfurati = MediaPlayer.create(this, R.raw.odfurati_doktoru);
    pljacka = MediaPlayer.create(this, R.raw.pljacka);
    puske = MediaPlayer.create(this, R.raw.pusi_ke);
    sava = MediaPlayer.create(this, R.raw.sava_sava);
    magazin = MediaPlayer.create(this, R.raw.tebe_i_magazin);
    vani = MediaPlayer.create(this, R.raw.tog_vani_nema);
    dom = MediaPlayer.create(this, R.raw.za_dom_spremni);
    zrigati = MediaPlayer.create(this, R.raw.zrigati);

我已经实现了 OnClickListener 方法..

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub
    switch (v.getId()) {
    case R.id.button1:
        bengalka.start();
        break;
    case R.id.button2:
        psiho.start();
        break;
    case R.id.button3:
        dane.start();
        break;
    case R.id.button4:
        dejo.start();
        break;
    case R.id.button5:
        pod.start();
        break;
    case R.id.button6:
        fejs.start();
        break;
    case R.id.button7:
        foto.start();
        break;
    case R.id.button8:
        hungry.start();
        break;
    case R.id.button9:
        jasna.start();
        break;
    case R.id.button10:
        jeben.start();
        break;
    case R.id.button11:
        kae.start();
        break;
    case R.id.button12:
        fora.start();
        break;
    case R.id.button13:
        gledas.start();
        break;
    case R.id.button14:
        gledate.start();
        break;
    case R.id.button15:
        kinezi.start();
        break;
    case R.id.button16:
        kozo.start();
        break;
    case R.id.button17:
        marino.start();
        break;
    case R.id.button18:
        mater.start();
        break;
    case R.id.button19:
        muha.start();
        break;
    case R.id.button20:
        papir.start();
        break;
    case R.id.button21:
        nered.start();
        break;
    case R.id.button22:
        majku.start();
        break;
    case R.id.button23:
        uroko.start();
        break;
    case R.id.button24:
        odfurati.start();
        break;
    case R.id.button25:
        pljacka.start();
        break;
    case R.id.button26:
        puske.start();
        break;
    case R.id.button27:
        sava.start();
        break;
    case R.id.button28:
        magazin.start();
        break;
    case R.id.button29:
        vani.start();
        break;
    case R.id.button30:
        dom.start();
        break;
    case R.id.button31:
        zrigati.start();
        break;
    }

现在,当我单击某些按钮时,它们不起作用,我查看 LogCat 并显示:

媒体播放器 |在状态 0 开始调用

媒体播放器 |错误 (-38, 0)

【问题讨论】:

  • 我不是在播放网络广播,而是在制作一个音板应用程序 :)
  • 尝试在每种情况下开始播放声音之前停止媒体播放器。

标签: android android-mediaplayer


【解决方案1】:

您正在尝试启动媒体播放器,但它尚未准备好。尝试使用 OnPreparedListener(),并在播放器准备就绪时启动它,它应该看起来像这样:

yourMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
public void onPrepared(MediaPlayer player) {
  player.start();
  }
});

【讨论】:

    【解决方案2】:

    我猜有些文件的编码是 android 不支持的。尝试在普通播放器中播放这些文件。

    请参阅this 链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多