当前位置: 首页 > 知识库问答 >
问题:

Flutter应用程序 - 想要播放声音被压迫()而不被按下

袁元明
2023-03-14

我正在开发一个应用程序,当一个按钮被按下时,我可以让应用程序播放声音,但我也想实现一个功能,当用户将手指悬停在所有按钮上而不释放(像钢琴),每个按钮都播放它的声音。我如何在Flutter中做到这一点?我试着在谷歌上搜索,但是由于这个问题非常具有描述性,我没能找到解决方案。

共有3个答案

封飞
2023-03-14

带有onTapDown和onTapUp的GestureDetector用于在正确的时间内播放单个键。onPanUpdate是您需要在多个键上滑动的东西。所以这三个的组合应该是您所需要的。

年风华
2023-03-14

使用手势探测器,这可能是一个可能的解决方案:

  • 您应该知道每个键的宽度。
  • 尝试将所有“钢琴小部件”放在行小部件中。
  • 将行小部件放在手势探测器的内部,如下所示:
     GestureDetector(
            onLongPressMoveUpdate: (detail){
              print(detail.globalPosition.dx);
            },
            child: Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: <Widget>[
                Container(
                  height: 40,
                  width: 40,
                  color: Colors.black,
                ),
                SizedBox(width: 6),
                Container(
                  color: Colors.white,
                  height: 40,
                  width: 40,
                ),
              ],
            ),
          )
  • 您可以使用功能<code>OnLongPressMoveUpdate</code>并获取x轴<code>dx</code>的变化,以查看根据键的<code>宽度</code>定位在哪个键中
  • 我的控制台显示如下:
165.0
flutter: 165.3333282470703
flutter: 165.66665649414062
flutter: 166.0
..
..
flutter: 205.0

你可以注意到结束和开始之间的差异等于我的密钥(容器)的宽度。

希望这有帮助!

时向文
2023-03-14

使用GestureDetector小部件来检测视图中小部件的不同手势。您可能需要使用onTapDownonTapUp

 类似资料:
  • 问题内容: 我有这个代码 它的工作原理,但不是我所期望的。声音会播放,但仅在我每次按下按钮时播放。我的主意是 当我按下按钮时,声音会播放,当我停止动作(手指在按钮之外)时,音乐会暂停。 有什么想法吗? 谢谢 问题答案: 这应该可以工作(我认为您的开关柜出了点问题):

  • 问题内容: 我正在尝试使用pygame播放声音文件(.wav),但是当我启动它时却听不到任何声音。 这是代码: 我也尝试使用频道,但结果是一样的 问题答案: 您的代码在我的机器上可以正常运行(Mac OSX 10.5,Python 2.6.4,pygame 1.9.1)。您正在使用哪些OS,Python和pygame版本?您是否可以通过其他方式(例如,在Mac的终端上或在Windows控制台上,然

  • 问题内容: 以下代码为什么不播放声音?它为play()返回“ true”,但我听不到任何声音。 如果我改用以下代码,则可以听到声音。 OS X优胜美地10.10.3 Xcode 6.2 问题答案: 问题是,您的AVAudioPlayer是一个 局部变量 。因此,它会立即不复存在-在开始播放之前,更不用说完成播放了。 解决方案:改为将其设置为 属性 ,以使其 持久存在 。

  • 播放(播放音效/播放录音)

  • 我一共有四个按钮,即btn1、btn2、btn3、btn4。同时我有三个声音。btn1停止/暂停所有声音。btn1播放sound1,当我按下btn2或btn3时,sound1应根据按下的按钮停止并播放相应的声音。我正在尝试使用以下代码来完成此操作: } P.S 我故意使用 onclicklistener 请告诉我我做错了什么。

  • 我正在使用FCM在代码下推送通知,以便在收到通知时播放声音 我称之为OnMessageReceived方法,但声音仅在应用程序位于前台时播放,而不是在应用程序位于后台时播放