0


Flutter音频播放之just_audio

just_audio的使用

just_audio

,它是一个用于播放音频的 Flutter 插件。

安装和导入 just_audio

要使用

just_audio

库,需要将其添加到项目的

pubspec.yaml

文件中:

dependencies:just_audio: ^0.9.34

然后运行以下命令以安装该库:

flutter pub get

要使用

just_audio

,需要在代码中导入它:

import'package:just_audio/just_audio.dart';

播放本地音频文件

要播放本地音频文件,需要创建

AudioPlayer

对象并调用

setFilePath

方法将音频文件的路径传递给它。
以下是一个简单的示例代码,演示了如何使用

just_audio

播放本地音频文件:

import'package:flutter/material.dart';import'package:just_audio/just_audio.dart';classAudioPlayerPageextendsStatefulWidget{@override
  _AudioPlayerPageState createState()=>_AudioPlayerPageState();}class _AudioPlayerPageState extendsState<AudioPlayerPage>{final _player =AudioPlayer();@overridevoidinitState(){super.initState();
    _player.setFilePath('assets/audio/sample.mp3');}@overridevoiddispose(){
    _player.dispose();super.dispose();}@overrideWidgetbuild(BuildContext context){returnScaffold(
      appBar:AppBar(
        title:Text('Audio Player'),),
      body:Center(
        child:Column(
          mainAxisAlignment:MainAxisAlignment.center,
          children:[IconButton(
              icon:Icon(Icons.play_arrow),
              onPressed:(){
                _player.play();},),SizedBox(height:20),IconButton(
              icon:Icon(Icons.pause),
              onPressed:(){
                _player.pause();},),],),),);}}

在这个例子中,我们创建了一个

AudioPlayer

对象

_player

,并在

initState

方法中调用了

setFilePath

方法,将本地音频文件的路径传递给它。在

build

方法中,我们创建了两个按钮,一个用于播放音频,另一个用于暂停音频。当用户按下播放按钮时,我们调用

_player.play()

方法来播放音频。当用户按下暂停按钮时,我们调用

_player.pause()

方法来暂停音频。

dispose

方法中,我们调用

_player.dispose()

方法来释放所有资源。

播放网络音频文件

要播放网络音频文件,需要调用

setUrl

方法将音频文件的 URL 传递给

AudioPlayer

对象。以下是一个简单的示例代码,演示了如何使用

just_audio

播放网络音频文件:

import'package:flutter/material.dart';import'package:just_audio/just_audio.dart';classAudioPlayerPageextendsStatefulWidget{@override
  _AudioPlayerPageState createState()=>_AudioPlayerPageState();}class _AudioPlayerPageState extendsState<AudioPlayerPage>{final _player =AudioPlayer();final _url ='https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3';@overridevoidinitState(){super.initState();
    _player.setUrl(_url);}@overridevoiddispose(){
    _player.dispose();super.dispose();}@overrideWidgetbuild(BuildContext context){returnScaffold(
      appBar:AppBar(
        title:Text('Audio Player'),),
      body:Center(
        child:Column(
          mainAxisAlignment:MainAxisAlignment.center,
          children:[IconButton(
              icon:Icon(Icons.play_arrow),
              onPressed:(){
                _player.play();},),SizedBox(height:20),IconButton(
              icon:Icon(Icons.pause),
              onPressed:(){
                _player.pause();},),],),),);}}

在这个例子中,我们创建了一个

AudioPlayer

对象

_player

,并在

initState

方法中调用了

setUrl

方法,将网络音频文件的 URL 传递给它。在

build

方法中,我们创建了两个按钮,一个用于播放音频,另一个用于暂停音频。当用户按下播放按钮时,我们调用

_player.play()

方法来播放音频。当用户按下暂停按钮时,我们调用

_player.pause()

方法来暂停音频。

dispose

方法中,我们调用

_player.dispose()

方法来释放所有资源。

播放音频流

要播放音频流,需要创建一个

AudioPlayer

对象,并调用

setAudioSource

方法来设置音频源。

setAudioSource

方法可以接收多种参数类型,包括本地文件路径、网络 URL、DASH/HLS URL、以及自定义的

AudioSource

对象。以下是一个简单的示例代码,演示了如何使用

just_audio

播放音频流:

import'package:flutter/material.dart';import'package:just_audio/just_audio.dart';classAudioPlayerPageextendsStatefulWidget{@override
  _AudioPlayerPageState createState()=>_AudioPlayerPageState();}class _AudioPlayerPageState extendsState<AudioPlayerPage>{final _player =AudioPlayer();final _url ='https://stream.radio.co/sb8ebfa4b0/listen';@overridevoidinitState(){super.initState();
    _player.setAudioSource(AudioSource.uri(Uri.parse(_url)));}@overridevoiddispose(){
    _player.dispose();super.dispose();}@overrideWidgetbuild(BuildContext context){returnScaffold(
      appBar:AppBar(
        title:Text('Audio Player'),),
      body:Center(
        child:Column(
          mainAxisAlignment:MainAxisAlignment.center,
          children:[IconButton(
              icon:Icon(Icons.play_arrow),
              onPressed:(){
                _player.play();},),SizedBox(height:20),IconButton(
              icon:Icon(Icons.pause),
              onPressed:(){
                _player.pause();},),],),),);}}

在这个例子中,我们创建了一个

AudioPlayer

对象

_player

,并在

initState

方法中调用了

setAudioSource

方法,将音频流的 URL 传递给它。在

build

方法中,我们创建了两个按钮,一个用于播放音频,另一个用于暂停音频。当用户按下播放按钮时,我们调用

_player.play()

方法来播放音频。当用户按下暂停按钮时,我们调用

_player.pause()

方法来暂停音频。

dispose

方法中,我们调用

_player.dispose()

方法来释放所有资源。

播放音频列表

要播放音频列表,需要创建一个包含多个音频源的

ConcatenatingAudioSource

对象,并将其传递给

AudioPlayer

对象的

setAudioSource

方法。以下是一个简单的示例代码,演示了如何使用

just_audio

播放音频列表:

import'package:flutter/material.dart';import'package:just_audio/just_audio.dart';classAudioPlayerPageextendsStatefulWidget{@override
  _AudioPlayerPageState createState()=>_AudioPlayerPageState();}class _AudioPlayerPageState extendsState<AudioPlayerPage>{final _player =AudioPlayer();final _playlist =ConcatenatingAudioSource(children:[AudioSource.uri(Uri.parse('https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3')),AudioSource.uri(Uri.parse('https://www.soundhelix.com/examples/mp3/SoundHelix-Song-2.mp3')),AudioSource.uri(Uri.parse('https://www.soundhelix.com/examples/mp3/SoundHelix-Song-3.mp3')),]);@overridevoidinitState(){super.initState();
    _player.setAudioSource(_playlist);}@overridevoiddispose(){
    _player.dispose();super.dispose();}@overrideWidgetbuild(BuildContext context){returnScaffold(
      appBar:AppBar(
        title:Text('Audio Player'),),
      body:Center(
        child:Column(
          mainAxisAlignment:MainAxisAlignment.center,
          children:[IconButton(
              icon:Icon(Icons.play_arrow),
              onPressed:(){
                _player.play();},),SizedBox(height:20),IconButton(
              icon:Icon(Icons.pause),
              onPressed:(){
                _player.pause();},),],),),);}}

在这个例子中,我们创建了一个

AudioPlayer

对象

_player

,并创建了一个包含三个音频源的

ConcatenatingAudioSource

对象

_playlist

。在

initState

方法中,我们调用了

_player.setAudioSource(_playlist)

方法,将音频列表传递给

_player

对象。在

build

方法中,我们创建了两个按钮,一个用于播放音频列表,另一个用于暂停音频列表。当用户按下播放按钮时,我们调用

_player.play()

方法来播放音频列表。当用户按下暂停按钮时,我们调用

_player.pause()

方法来暂停音频列表。

dispose

方法中,我们调用

_player.dispose()

方法来释放所有资源。


本文转载自: https://blog.csdn.net/yikezhuixun/article/details/131068672
版权归原作者 江上清风山间明月 所有, 如有侵权,请联系我们删除。

“Flutter音频播放之just_audio”的评论:

还没有评论