Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart 如何在颤振中播放自定义声音?_Dart_Flutter - Fatal编程技术网

Dart 如何在颤振中播放自定义声音?

Dart 如何在颤振中播放自定义声音?,dart,flutter,Dart,Flutter,我能够在这行代码中播放一个简单的声音: SystemSound.play(SystemSoundType.click); 如何播放定制的声音 让我们来听一段简短的mp3谢谢您查看Flatter 如今(截至2017年5月5日)的Flitter SDK不具备播放和控制任意音频的内置支持。然而,我们设计了插件系统来支持它 此插件为颤振添加了音频支持: 从插件的自述文件: Future play() async { final result = await audioPlayer.play(kUr

我能够在这行代码中播放一个简单的声音:

SystemSound.play(SystemSoundType.click);
如何播放定制的声音


让我们来听一段简短的mp3

谢谢您查看Flatter

如今(截至2017年5月5日)的Flitter SDK不具备播放和控制任意音频的内置支持。然而,我们设计了插件系统来支持它

此插件为颤振添加了音频支持:

从插件的自述文件:

Future play() async {
  final result = await audioPlayer.play(kUrl);
  if (result == 1) setState(() => playerState = PlayerState.playing);
}

// add a isLocal parameter to play a local file
Future playLocal() async {
  final result = await audioPlayer.play(kUrl);
  if (result == 1) setState(() => playerState = PlayerState.playing);
}


Future pause() async {
  final result = await audioPlayer.pause();
  if (result == 1) setState(() => playerState = PlayerState.paused);
}

Future stop() async {
  final result = await audioPlayer.stop();
  if (result == 1) {
    setState(() {
      playerState = PlayerState.stopped;
      position = new Duration();
    });
  }
}

播放资产中已定义的文件的简单解决方案是使用AudioCache。 图书馆:。 将库添加到
pubspec.yaml
后,导入所需的类:

import 'package:audioplayers/audio_cache.dart';
在同一文件中添加资源,并将带有声音的文件放置到“资源”文件夹中(如果没有此文件夹,请创建它)

然后添加以下代码:

static AudioCache player = new AudioCache();
const alarmAudioPath = "sound_alarm.mp3";
player.play(alarmAudioPath);

示例

[答案更新:此方法无效,请参阅注释] 您可以使用由Flatter团队维护的插件。它可以跨平台复制多种媒体,包括声音文件。更具体地说,您可能希望使用VideoPlayerController类

例如,
\u controller=VideoPlayerController.network(“”);
_controller.play();

音频播放器工作(来自:

(1) 将库添加到您的pubspec.yaml:
audioplayers:^0.15.1

(2) 在pubspec.yaml中的
flatter
下添加对资产文件的引用:

flutter
    assets:
       - assets/yes.mp3
确保它位于“资源”文件夹下。它在子文件夹中时不起作用。例如,类似:-assets/sounds/yes.mp3的内容将不起作用。只需将音频文件放在资产文件夹中,而不是其子文件夹中

(3) 将应用程序中的库导入为:
import-package:audioplayers/audioplayers.dart

(4) 然后定义此函数:

Future<AudioPlayer> playLocalAsset() async {
    AudioCache cache = new AudioCache();
   //At the next line, DO NOT pass the entire reference such as assets/yes.mp3. This will not work.
   //Just pass the file name only.
    return await cache.play("yes.mp3"); 
}
Future playLocalAsset()异步{
AudioCache缓存=新的AudioCache();
//在下一行,不要传递整个引用,例如assets/yes.mp3。这将不起作用。
//只需传递文件名即可。
return wait cache.play(“yes.mp3”);
}
(5) 需要播放声音时调用函数:
wait playLocalAsset()

空安全代码:
  • 将依赖项添加到
    pubspec.yaml
    文件

    dependencies:
      audioplayers: ^0.19.0
    
  • 将音频文件路径添加到您的
    pubspec.yaml
    文件

    flutter: 
      assets:
        - assets/audio/my_audio.mp3
    
  • 运行
    flatter pub get

  • 完整代码:

    类主页扩展了无状态小部件{
    最终音频缓存_AudioCache=AudioCache(
    前缀:“audio/”,
    fixedPlayer:AudioPlayer()…设置释放模式(释放模式.停止),
    );
    @凌驾
    小部件构建(构建上下文){
    返回脚手架(
    主体:升降按钮(
    按下:()=>\u audioCache.play('my\u audio.mp3'),
    子项:文本(“播放音频”),
    ),
    );
    }
    }
    
    我无法播放系统声音。我在调试输出中得到以下消息:“从设置缓存,name=sound\u effects\u enabled,value=0”。知道缺少什么吗?库未导入是否将AudioPlayer:^0.13.7添加到pubspec.yaml中的依赖项中?是的,我添加了,并单击了packages get。但未检测到声明“Uri的目标不存在”的导入语句。我收到了相同的错误。在添加依赖项并导入库后,运行“颤动包获取”命令,然后关闭VS代码。这从字面上解决了错误。考虑使用这个插件,因为它还支持使用Web的音频,与其他插件相反。因此,在其他音频插件中,喜欢的数量和受欢迎的程度越来越高。没有在频道bz.rxla.flatter/audio上找到播放方法的实现)有什么想法吗?没有声音。2020年2月,我从我这边试过,但仍然没有来自颤振本身的支持。很好,他们发布了一个异国情调的“本周小部件”,但这太基本了,不能成为图书馆的标准。OP问mp3,这个插件能播放吗?不管怎样,我意识到,Android上的一些音频文件恰好可以使用这个插件并不意味着该插件支持音频播放。我发现这个插件很难在iOS上播放音频。没有计划让它工作,因为这不是
    视频播放器
    插件的目的。社区中建议的方法是使用@ryanheise提供的
    just_audio
    。@iKeepChangingName是的,它可以播放mp3,而且效果很好。如果我们想停止此音频,应该怎么做?
    dependencies:
      audioplayers: ^0.19.0
    
    flutter: 
      assets:
        - assets/audio/my_audio.mp3