Android Media Player 随机引发错误并且无法播放
Posted
技术标签:
【中文标题】Android Media Player 随机引发错误并且无法播放【英文标题】:Android Media Player randomly raises error and doesn't play 【发布时间】:2018-06-04 12:09:29 【问题描述】:我正在为 VS2017 在 Xamarin.android 上制作乐器演奏应用程序(“Walkband”风格)。
我有一个名为players
的MediaPlayers
数组。
这是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)
资源本身不是问题,因为所有资源大部分都可以正常工作,并且偶尔会失败
【问题讨论】:
嗨,我的回答对你有用吗? 使用MediaPlayer
,即使您正确释放所有播放器(我在您的代码中没有看到),您也可以耗尽设备上的可用资源。如果你正在播放的片段很短,那么乔的答案是正确的。
【参考方案1】:
我有一个称为播放器的 MediaPlayer 数组。
您需要使用soundpool,请参考this。
【讨论】:
谢谢,这正是我所需要的!以上是关于Android Media Player 随机引发错误并且无法播放的主要内容,如果未能解决你的问题,请参考以下文章
android错误之MediaPlayer用法的Media Player called in state *,androidmediaplayer
Android Media Player:开始调用状态4错误(-38,0)
android studio media player null对象引用
Android 拍照 引发 “SecurityException has no access to content://media/...“