#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);