Что происходит, так это то, что инструкция mediaPlayer.start () вызывается до полной загрузки файла. Предполагая, что вы используете mediaPlayer.create (this, остаток), а затем .start (), есть несколько вещей, которые могут помочь. «Правильный» способ сделать это - поместить инструкцию .start () в onPreparedListener, поскольку .create вызывает .onPrepared с первого раза, но, честно говоря, когда я вставил это в свои звуковые панели, я получил тонны отчетов о сбоях, поэтому я вернулся просто использовать .start после .create.
Я обнаружил, что проблема обычно возникает, если звуковой файл имеет очень высокий битрейт, или если приложение установлено на медленной SD-карте. Я использую mp3, но обычно ограничиваю битрейт 96k и вставляю описание приложения, которое, если клипы не воспроизводятся полностью, возвращает приложение обратно во внутреннюю память и жалобы, похоже, прекратились.