是否有任何方法可以使用Flutter更改(增加/减少)音频播放速度?找不到关于它的任何信息,似乎编写本机代码是唯一的选择。
kokeuurv1#
包audioplayers包含了对回放速率的支持:
_audioPlayer.setPlaybackRate(playbackRate: 1.0);
字符串
velaa5lx2#
尝试音频播放器的audioplayers_with_rate分支。它为我工作得很好,但我找不到它的代码所在的位置(它链接到音频播放器)。相同的功能提供this fork或this fork音频播放器。
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
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工作正常。
setPlaybackRate
4条答案
按热度按时间kokeuurv1#
包audioplayers包含了对回放速率的支持:
字符串
velaa5lx2#
尝试音频播放器的audioplayers_with_rate分支。它为我工作得很好,但我找不到它的代码所在的位置(它链接到音频播放器)。相同的功能提供this fork或this fork音频播放器。
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
ctzwtxfj4#
使用audioplayers的更完整示例:
字符串
使用方式:
型
请注意,
setPlaybackRate
对Windows应用程序没有影响。我没有尝试模拟器,但在一个真实的的Android设备和网络上的Chrome工作正常。