在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,
),
),
...
}