简体   繁体   English

如何在颤动中播放音频文件?

[英]How to play an audio file in flutter?

I'm new in flutter development and I got stuck in a program where I want to play an audio file on pressing a TextButton(), but on pressing that button no audio is played and got a huge message in debug console.我是颤振开发的新手,我被困在一个程序中,我想在按下 TextButton() 时播放音频文件,但按下该按钮时没有播放音频,并且在调试控制台中收到一条巨大的消息。 Could someone help me out in detecting the problem.有人可以帮助我发现问题。

This is the message I got in debug console:这是我在调试控制台中收到的消息:

Launching lib\main.dart on Mi A2 in debug mode...
lib\main.dart:1
√  Built build\app\outputs\flutter-apk\app-debug.apk.
Connecting to VM Service at ws://127.0.0.1:52093/iUDgc5cZVsg=/ws
W/ample.xylophon(10468): Accessing hidden method Lsun/misc/Unsafe;->getUnsafe()Lsun/misc/Unsafe; (greylist,core-platform-api, linking, allowed)
W/ample.xylophon(10468): Accessing hidden method Lsun/misc/Unsafe;->objectFieldOffset(Ljava/lang/reflect/Field;)J (greylist,core-platform-api, linking, allowed)
W/ample.xylophon(10468): Accessing hidden method Lsun/misc/Unsafe;->compareAndSwapObject(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z (greylist, linking, allowed)
W/ample.xylophon(10468): Accessing hidden method Lsun/misc/Unsafe;->putObject(Ljava/lang/Object;JLjava/lang/Object;)V (greylist, linking, allowed)
W/ample.xylophon(10468): Accessing hidden method Landroid/media/AudioTrack;->getLatency()I (greylist, reflection, allowed)
I/ExoPlayerImpl(10468): Init 2f4b4e0 [ExoPlayerLib/2.13.1] [jasmine_sprout, Mi A2, Xiaomi, 29]
W/ample.xylophon(10468): Accessing hidden method Lsun/misc/Unsafe;->compareAndSwapObject(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z (greylist, linking, allowed)
V/AudioTrack(10468): getMinFrameCount(): getMinFrameCount=3536: afFrameCount=1920, afSampleRate=48000, afLatency=80
V/AudioTrack(10468): set(): streamType -1, sampleRate 44100, format 0x1, channelMask 0x3, frameCount 14144, flags #0, notificationFrames 0, sessionId 24825, transferType 3, uid -1, pid -1
V/AudioTrack(10468): set(): streamType -1 frameCount 14144 flags 0000
V/AudioTrack(10468): set(): Building AudioTrack with attributes: usage=1 content=0 flags=0xa00 tags=[]

This is my code:这是我的代码:

    import 'package:just_audio/just_audio.dart';
    import 'package:flutter/material.dart';
    void main() {
      runApp(Xylophone());
    }
    class Xylophone extends StatelessWidget { 
      @override
      Widget build(BuildContext context) {
        return MaterialApp(
          home: Scaffold(
            body: SafeArea(
              child: Center(
                child: TextButton(onPressed: ()async{
                 final player = AudioPlayer();
                 await player.setAsset('assets/assets_note1.wav');
                },
                child:Text('Click me'),
                ),
              ),
            ),
          ),
        );
      }
    }

Add this Dependency to your pubspec.yaml file assets_audio_player: ^3.0.3+3将此依赖项添加到您的 pubspec.yaml 文件assets_audio_player: ^3.0.3+3

create playSound function like创建 playSound 函数,如

playSound() async {
      AssetsAudioPlayer audioPlayer = AssetsAudioPlayer();
      audioPlayer.open(Audio('assets/bells.mp3'));
}

inside widget create button内部小部件创建按钮

TextButton(
        onPressed: () => playSound(),
        child: Text('Play'),
      ),

If Some error occurred go to our project directory => android\app\build.gradle and change如果发生一些错误,请转到我们的项目目录 => android\app\build.gradle 并更改

compileSdkVersion 28, minSdkVersion 21,targetSdkVersion 30

It solve your problem它解决了你的问题你的 build.gradle 文件在这里

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM