我正在尝试使用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'),
),
),
),
),
);
}
}
答案 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);