音频未在 MacBook Pro 的 Android 模拟器中播放

Abl*_*son 0 android android-emulator android-mediaplayer

这是 MacBook Pro 中的一个问题。经过几个小时的调试,我发现了这个问题

我正在使用以下代码创建媒体播放器并播放 mp3 文件。我在 Android Studio 中使用内置模拟器。有什么调试建议吗?

import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    MediaPlayer mediaPlayer;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mediaPlayer = MediaPlayer.create(this,R.raw.music);
        mediaPlayer.start();
    }
}
Run Code Online (Sandbox Code Playgroud)

活动_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.ablejohnson.audiodemo.MainActivity">
</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)

编辑

为了进一步调试,我添加了一个 onErrorListener mediaPlayer

mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
            @Override
            public boolean onError(MediaPlayer mediaPlayer, int what, int extra) {
                Log.e("error","what:"+what+",extra"+extra);
                return false;
            }
        });
Run Code Online (Sandbox Code Playgroud)

以下行将打印在日志中。

D/Atlas: Validating map...
E/MediaPlayer: Should have subtitle controller already set
E/MediaPlayer: Error (1,-19)
E/error: what:1,extra-19
Run Code Online (Sandbox Code Playgroud)

Abl*_*son 8

这是在 MacBook Pro 上运行的模拟器中的一个特定问题。我尝试在实际设备和 windows+ 模拟器上运行相同的应用程序,这两种情况都运行良好。

这里的解决方案很糟糕,但对我有用

关闭蓝牙并重新启动模拟设备