Flutter(十) 音訊+影片播放

柳雲居士發表於2023-05-06

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

相關文章