Android Media Player 随机出现错误并且无法播放

Android Media Player randomly raises error and doesn't play

我正在为 VS2017 在 Xamarin.Android 上制作一个乐器演奏应用程序("Walkband" 风格)。 我有一个名为 playersMediaPlayers 数组。

这是Play函数,其中resid相当于Resource.Raw.filename:

public void Play(int resid)
    {
        for (int i = 0; i < players.Length; i++)
        {
            if (!players[i].IsPlaying)
            {
                players[i].Reset();
                players[i] = MediaPlayer.Create(this, resid);
                players[i].Start();
                break;
            }
        }
    }

大多数时候它播放得很好,但偶尔(特别是在快速连续播放许多资源之后),它无法播放。

成功后日志如下所示:

06-04 14:52:26.112 I/MediaPlayer(17611): message received msg=2, ext1=0, ext2=0
06-04 14:52:26.112 I/MediaPlayer(17611): playback complete

失败时像这样:

06-04 14:52:25.933 I/MediaPlayer(17611): message received msg=100, ext1=1, ext2=-19
06-04 14:52:25.933 E/MediaPlayer(17611): error (1, -19)
06-04 14:52:25.933 E/MediaPlayer(17611): Error (1,-19)

资源本身不是问题,因为所有资源大部分都可以工作,偶尔都会失败

I have an array of MediaPlayers called players.

您需要使用soundpool, and please refer to this