dart 更改音频播放速度

jogvjijk  于 2023-07-31  发布在  其他
关注(0)|答案(4)|浏览(100)

是否有任何方法可以使用Flutter更改(增加/减少)音频播放速度?
找不到关于它的任何信息,似乎编写本机代码是唯一的选择。

kokeuurv

kokeuurv1#

audioplayers包含了对回放速率的支持:

_audioPlayer.setPlaybackRate(playbackRate: 1.0);

字符串

velaa5lx

velaa5lx2#

尝试音频播放器的audioplayers_with_rate分支。它为我工作得很好,但我找不到它的代码所在的位置(它链接到音频播放器)。相同的功能提供this forkthis fork音频播放器。

ecfsfe2w

ecfsfe2w3#

尝试使用inappwebview包,它将使您能够通过发送这样的HTML代码来自定义任何语音播放器:
initialUrlRequest:URLRequest(url:Uri.dataFromString(generateVoicePlayerHTML(voiceUrl),mimeType:'text/html',编码:Encoding.getByName('utf-8'),
您将创建您的Html代码内的抽象类“GenerateVoicePlayerHTML”也有许多属性来使用它依赖于平台
参考:https://pub.dev/packages/flutter_inappwebview

ctzwtxfj

ctzwtxfj4#

使用audioplayers的更完整示例:

import 'dart:developer';
import 'package:audioplayers/audioplayers.dart';

class Player {
   static play(String src, Function onComplete, {double playbackRate = 1.0}) async {
    try {
      final player = AudioPlayer();
      await player.setPlaybackRate(playbackRate);
      await player.play(AssetSource(src));
      player.onPlayerComplete.listen((_) {
        onComplete();
      });
    } catch (e, stack) {
      log(src);
      log(e.toString());
      log(stack.toString());
    }
  }  

}

字符串
使用方式:

Player.play(pathToFile, () {}); //normal speed
Player.play(pathToFile, () {}, playbackRate: 0.7); //slowly
Player.play(pathToFile, () {}, playbackRate: 1.5); //quickly


请注意,setPlaybackRate对Windows应用程序没有影响。我没有尝试模拟器,但在一个真实的的Android设备和网络上的Chrome工作正常。

相关问题