【问题标题】:mediaplayer unknown does not play sound on some one device未知媒体播放器无法在某些设备上播放声音
【发布时间】:2017-11-18 21:57:53
【问题描述】:

我正在使用 mediaplayer 对象来播放 .amr 声音文件。现在模拟器和我测试应用程序的所有设备(总共 5 台设备)上的一切都正常。问题是当我尝试在 huawei p8 lite 上测试应用程序时,我得到了一个media_unknown_error

我已经尝试检查媒体播放器是否在播放前未准备好或设备音量低,但似乎问题出在其他地方。

这是我的错误

I/MediaPlayer: [HSM] stayAwake true uid: 10110, pid: 31906
E/MediaPlayer: error (1, -1010)
E/MediaPlayer: Error (1,-1010)
I/MediaPlayer: [HSM] stayAwake false uid: 10110, pid: 31906

【问题讨论】:

  • 请发布您的媒体播放器代码
  • 将文件格式从 .amr 更改为 .acc 现在可以在所有设备上播放
  • 为什么要投反对票?

标签: android android-mediaplayer media-player device


【解决方案1】:

试试这个。

package com.example.com.mak.mediaplayer;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.app.Activity;

public class MainActivity extends Activity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    final MediaPlayer mpp = MediaPlayer.create(this, R.raw.red); //amr file in res/raw folder

    Button btnplay = (Button) findViewById(R.id.btnplay); //Play
    btnplay.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View vone) {
        mpp.start();
      }
    });

    Button btnpause = (Button) findViewById(R.id.btnpause); //Pause
    btnpause.setOnClickListener(new View.OnClickListener() {

      @Override
      public void onClick(View vtwo) {
        if (mpp.isPlaying()) {
          mpp.pause();
          mpp.seekTo(0);
        }
      }
    });
  }
}

【讨论】:

  • 这是错误的,您在调用 start() 方法之前没有在媒体播放器上调用 prepare() 方法。
  • 在 MediaPlayer.create(this, R.raw.red);方法自动调用prepare
猜你喜欢
  • 1970-01-01
  • 2018-11-20
  • 1970-01-01
  • 2012-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多