在Flutter中,我们有各种插件可供使用,从而实现音频和视频的播放功能。
例如,可以使用“text_to_speech”插件来将文字转换为语音,使用内置的“video_player”插件轻松地实现视频播放,或者使用“audioplayers”插件实现音频播放。
对于仅需要简单播放器功能的情况,也可以使用第三方插件“chewie”来实现。
一、文字转语音 - text_to_speech
text_to_speech官网
pubspec.yaml
dependencies: text_to_speech: ^0.2.3
示例
TextToSpeech tts = TextToSpeech(); tts.setRate(0.3); // 语速 tts.setPitch(0.5); // 语调 tts.setLanguage('en-US'); // 语言 tts.speak('This is test'); // 播放文字
Android配置
安卓还需要在App的AndroidManifest.xml中添加<queries>:
<manifest> <application> ... </application> <queries> <intent> <action android:name="android.intent.action.TTS_SERVICE" /> </intent> </queries> </manifest>
二、播放音频 - audioplayers
audioplayers官网
pubspec.yaml
dependencies: audioplayers: ^4.0.1
示例
class _ExampleAppState extends State<ExampleApp> { final player = AudioPlayer(); ... void play() { player.play(AssetSource('audio/test.mp3')); } ... }
三、播放视频 - video_player & chewie
播放视频需要使用到官方提供的video_player和第三方播放器chewie
video_player官网
chewie官网
pubspec.yaml
dependencies: video_player: ^2.6.1 chewie: ^1.4.0
示例
class _ExampleAppState extends State<ExampleApp> { late VideoPlayerController videoPlayerController; late ChewieController cheController; @override void initState() { // 资源控制器 videoPlayerController = VideoPlayerController.asset('assets/video/test.mp4'); // 视图控制器 cheController = ChewieController( videoPlayerController: videoPlayerController, aspectRatio: 16 / 9, autoInitialize: true, autoPlay: false, looping: false, ); super.initState(); } ... // 播放器展示 Container( height: 200, child: Chewie( controller: cheController, ), ), ... }