dart 播放录制的音频(保存的临时存储目录)- record_mp3包

ecbunoof  于 2023-09-28  发布在  其他
关注(0)|答案(1)|浏览(107)

我使用record_mp3录制音频:^3.0.0(this)包。像下面,如何发挥它使用audioplayers包(this).

下面-如何录制音频-

void startRecord() async {
    bool hasPermission = await checkPermission();
    if (hasPermission) {
      statusText = "Recording...";
      recordFilePath = await getFilePath();
      isComplete = false;
      RecordMp3.instance.start(recordFilePath, (type) {
        statusText = "Record error--->$type";
        setState(() {});
      });
    } else {
      statusText = "No microphone permission";
    }
    setState(() {});
  }


void stopRecord() {
    bool s = RecordMp3.instance.stop();
    if (s) {
      statusText = "Record complete";
      isComplete = true;
      setState(() {});
    }
  }

Future<String> getFilePath() async {
    Directory storageDirectory = await getApplicationDocumentsDirectory();
    String sdPath = storageDirectory.path + "/record";
    var d = Directory(sdPath);
    if (!d.existsSync()) {
      d.createSync(recursive: true);
    }
    return sdPath + "/test_${i++}.mp3";
  }

在录制后,我想播放它。我用了这个方法,(他们在例子中给出)

void play() {
    if (recordFilePath != null && File(recordFilePath).existsSync()) {
      AudioPlayer audioPlayer = AudioPlayer();
      audioPlayer.play(recordFilePath, isLocal: true);
    }
  }

现在,它是无效的。显示语法错误

  • 无法将参数类型“String”分配给参数类型“Source”
  • 未定义命名参数“isLocal”。

如何播放我录制的音频。

bybem2ql

bybem2ql1#

您遇到的错误是因为音频播放器包可能在您使用的版本之后发生了一些更改或更新,并且播放方法签名已更改。要使用audioplayer包播放音频,您应该正确使用audioplayer API。
以下是如何使用更新的音频播放器包播放您录制的音频:
首先,确保将audioplayer软件包添加到pubspec.yaml文件中,并将其更新到最新版本:

import 'package:audioplayers/audioplayers.dart';

 void play() {
  if (recordFilePath != null && File(recordFilePath).existsSync()) {
      AudioPlayer audioPlayer = AudioPlayer();
      audioPlayer.play(recordFilePath, isLocal: true); // Use isLocal to 
      specify that the file is local
   }
 }

确保导入audioplayer包并使用其中的AudioPlayer类。
通过指定isLocal:则表示音频文件是设备上的本地文件。
现在,您的代码应该可以正常工作,没有任何语法错误,并且应该使用audioplayer包播放录制的音频。

相关问题