Ошибка Flutter audioplayers (1, -19) — Звук не воспроизводится, и приложение не вылетает

#flutter

#flutter

Вопрос:

Я пытаюсь использовать пакет flutter audioplayers для воспроизведения аудиофайлов и получаю эту ошибку. Следуя онлайн-руководству по flutter, у меня был именно этот код, и он запускался и воспроизводил звук правильно, но теперь он не воспроизводит звук. Я думаю, возможно, произошли изменения в настройках моей IDE или на моем компьютере, но я не знаю, как найти проблему.

 E/MediaPlayerNative(13949): error (1, -19)
E/MediaPlayer(13949): Error (1,-19)
E/MediaPlayerNative(13949): stop called in state 0, mPlayer(0xb4e843c0)
E/MediaPlayerNative(13949): error (-38, 0)
V/MediaPlayer(13949): resetDrmState:  mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
V/MediaPlayer(13949): cleanDrmObj: mDrmObj=null mDrmSessionId=null
V/MediaPlayer(13949): resetDrmState:  mDrmInfo=null mDrmProvisioningThread=null mPrepareDrmInProgress=false mActiveDrmScheme=false
V/MediaPlayer(13949): cleanDrmObj: mDrmObj=null mDrmSessionId=null
  

Вот код, который я использую для тестирования пакета audioplayers.

 import 'package:flutter/material.dart';
import 'package:audioplayers/audio_cache.dart';

void main() => runApp(XylophoneApp());

class XylophoneApp extends StatelessWidget {
  final player = AudioCache();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: SafeArea(
          child: Center(
            child: FlatButton(
              color: Colors.red,
              onPressed: () {
                player.play('note1.wav');
              },
              child: Text('Click Me'),
            ),
          ),
        ),
      ),
    );
  }
}
  

Комментарии:

1. Есть мысли по этому поводу?

Ответ №1:

я столкнулся с той же проблемой, и у меня не работает ни одно решение, пока я не сменил пакет, проверьте этот, он очень приятный и работает без каких-либо проблем . assets_audio

     playQRScannerSound() async {
    AssetsAudioPlayer.newPlayer().open(
      Audio("assets/audios/scan_Beep.mp3"),
      autoStart: true,
    );
  }
  

Я надеюсь, что это поможет вам, удачи.

Комментарии:

1. мне не удалось внезапно запустить аудиоплееры, поэтому я также переключился на asset_audio_player. В течение нескольких месяцев работало нормально. В каком-то обновлении что-то сломалось.

2. Я предполагаю, что оно может воспроизводить любой файл из файловой системы устройства. Я заметил, что другие аудиоплееры сохраняют копию выбранного файла в общую папку, такую как /data /user / 0 /com.example.example_application /cache / file_picker /, поэтому я установлю эту папку в качестве папки своих ресурсов. Будем надеяться, что у меня тоже это сработает

Ответ №2:

 AudioPlayer audioPlayer;
AudioCache audioCache = AudioCache();
String url = 'images/PID_meditation_demo_novoice.mp3';    //local mp3 file in asset folder

playLocal() async {
audioPlayer = await audioCache.play(url);      //audio play function
}

pauseAudio() async {                 // audio pause
await audioPlayer.pause();}

resumeAudio() async {
await audioPlayer.resume();                 //audio resume

}

stopAudio() async {
if(audioPlayer !=null){
await audioPlayer.stop();             //audio srope
}
}
  

Комментарии:

1. Итак, в чем именно заключалась проблема в исходном вопросе? Теперь я также получаю ошибку Error (1,-19) при вызове await cache.load('tick.mp3'); await cache.play('tick.mp3')

2. У меня такая же ошибка после использования медиаплеера примерно через ~ 30 минут, и звук больше не слышен, даже если проигрыватель был удален и повторно инициализирован. После перезапуска приложения все работает нормально.

Ответ №3:

Да, у меня действительно такая же ошибка, но я пытаюсь это:

  final playerx = new AudioCache(fixedPlayer: AudioPlayer());
  

затем в моем действии:

 playerx.fixedPlayer.stop();
playerx.play('turn2.mp3');
  

я чаще всего останавливаю потоковую передачу своего mplayer перед ее запуском.
и из-за этого ошибка исчезает из мира..

Ответ №4:

Я не знаю, устранили ли вы свою проблему или нет. У меня была такая же проблема, выбор, который был у меня и, возможно, у вас, заключался в том, чтобы получить другой пакет или подключить свой собственный телефон вместо эмулятора, я обнаружил, когда подключал свой собственный телефон (Galaxy note9) У меня больше не было проблем 👍.

Ответ №5:

Устранена путем добавления «mode» и «stayAwake» следующим образом:

 await audioPlayer.play("audio/buttonOn.mp3",
    mode: PlayerMode.LOW_LATENCY,
    stayAwake: false);