Flutter音频播放器错误(1,-19)-没有音频播放并且应用程序没有崩溃

时间:2020-08-16 03:44:10

标签: flutter

我正在尝试使用flutter audioplayers包播放音频文件,并且遇到此错误。在遵循在线颤振教程的同时,我获得了准确的代码,并且可以正确运行并产生声音,但是现在它无法播放音频。我认为我的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'),
            ),
          ),
        ),
      ),
    );
  }
}

5 个答案:

答案 0 :(得分: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 :(得分:1)

我遇到了同样的问题,没有任何解决方案对我有用,直到我更换了包,检查这个,它非常好,工作没有任何问题。 assets_audio

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

}

希望对你有帮助,祝你好运。

答案 2 :(得分:0)

是的,我确实有同样的错误, 但我试试这个:

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

然后是我的行动:

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

在我开始播放之前,我通常会停止播放我的播放器。 这让错误从世界上消失了..

答案 3 :(得分:0)

我不知道你是否已经解决了你的问题。我也遇到了同样的问题,我和你自己的选择是换一个包或者连接自己的手机而不是模拟器,我发现当我连接自己的手机(galaxy note9)时,我不再有问题?。

答案 4 :(得分:0)

通过添加“mode”和“stayAwake”解决如下:

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