admin管理员组

文章数量:1279008

My App is made in Flutter/Dart. I am Using Just_Audio Package from Pub.dev The app works fine on web test, but in Phone/Physical Device test it is not playing sound, its a **launchpad **app which play a tone on a button click, can anyone go through and tell me what is wrong?

File Structure: Lib and Asset folders are in same level inside project directory

  • launchPad /

    • assets/
      - Sound

    • lib /

Pubspec.yaml:

dependencies:
just_audio: ^0.9.46

assets:
    - assets/

Main.dart:

import 'package:flutter/material.dart';
import 'home_page.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: "LaunchPad",
      debugShowCheckedModeBanner: false,
      home: SafeArea(
        child: Scaffold(
          backgroundColor: Color(0xff333333),
          appBar: AppBar(
            backgroundColor: Color(0xff333333),
            title: Text(
              "LaunchPad",
              style: TextStyle(
                fontFamily: "Pacifico",
                color: Colors.white,
              ),
            ),
          ),
          body: HomePage(),
        ),
      ),
    );
  }
}

HomePage.dart

import 'package:flutter/material.dart';
import 'package:just_audio/just_audio.dart';

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  final List noteList = [
    "sound/1.mp3",
    "sound/2.mp3",
    "sound/3.mp3",
    "sound/5.mp3",
    "sound/6.mp3",
    "sound/4.mp3",
    "sound/7.mp3",
    "sound/8.mp3",
    "sound/9.mp3",
    "sound/10.mp3",
    "sound/11.mp3",
    "sound/12.mp3",
    "sound/13.mp3",
    "sound/14.mp3",
    "sound/15.mp3",
    "sound/16.mp3",
    "sound/17.mp3",
    "sound/18.mp3",
    "sound/19.mp3",
    "sound/20.wav",
    "sound/21.mp3",
    "sound/22.wav",
    "sound/23.wav",
    "sound/24.wav",
    "sound/25.wav",
    "sound/26.wav",
    "sound/27.wav",
    "sound/28.wav"
  ];
  List radialGradientList = [
    RadialGradient(colors: [Color(0xffADCBFC), Color(0xff067CCB)]),
    RadialGradient(colors: [Color(0xffff2525), Color(0xffc40050)]),
    RadialGradient(colors: [Color(0xffADCBFC), Color(0xff067CCB)]),
    RadialGradient(colors: [Color(0xffE247FC), Color(0xffA23AB7)]),
    RadialGradient(colors: [Color(0xffADCBFC), Color(0xff067CCB)]),
    RadialGradient(colors: [Color(0xffff2525), Color(0xffc40050)]),
    RadialGradient(colors: [Color(0xffADCBFC), Color(0xff067CCB)]),
    RadialGradient(colors: [Color(0xffE247FC), Color(0xffA23AB7)]),
    RadialGradient(colors: [Color(0xffADCBFC), Color(0xff067CCB)]),
    RadialGradient(colors: [Color(0xffff2525), Color(0xffc40050)]),
    RadialGradient(colors: [Color(0xffADCBFC), Color(0xff067CCB)]),
    RadialGradient(colors: [Color(0xffE247FC), Color(0xffA23AB7)]),
    RadialGradient(colors: [Color(0xffADCBFC), Color(0xff067CCB)]),
    RadialGradient(colors: [Color(0xffff2525), Color(0xffc40050)]),
    RadialGradient(colors: [Color(0xffADCBFC), Color(0xff067CCB)]),
    RadialGradient(colors: [Color(0xffE247FC), Color(0xffA23AB7)]),
    RadialGradient(colors: [Color(0xffADCBFC), Color(0xff067CCB)]),
    RadialGradient(colors: [Color(0xffff2525), Color(0xffc40050)]),
    RadialGradient(colors: [Color(0xffADCBFC), Color(0xff067CCB)]),
    RadialGradient(colors: [Color(0xffE247FC), Color(0xffA23AB7)]),
    RadialGradient(colors: [Color(0xffADCBFC), Color(0xff067CCB)]),
    RadialGradient(colors: [Color(0xffff2525), Color(0xffc40050)]),
    RadialGradient(colors: [Color(0xffADCBFC), Color(0xff067CCB)]),
    RadialGradient(colors: [Color(0xffE247FC), Color(0xffA23AB7)]),
    RadialGradient(colors: [Color(0xffADCBFC), Color(0xff067CCB)]),
    RadialGradient(colors: [Color(0xffff2525), Color(0xffc40050)]),
    RadialGradient(colors: [Color(0xffADCBFC), Color(0xff067CCB)]),
    RadialGradient(colors: [Color(0xffE247FC), Color(0xffA23AB7)]),
  ];

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.all(8.0),
      child: GridView.builder(
        itemCount: noteList.length,
        gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
            crossAxisCount: 4, mainAxisSpacing: 8, crossAxisSpacing: 8),
        itemBuilder: (context, index) {
          return Pad(noteList[index].toString(), radialGradientList[index]);
        },
      ),
    );
  }
}

class Pad extends StatefulWidget {
  final note;
  final radialGradiant;

  const Pad(this.note, this.radialGradiant, {super.key});

  @override
  State<Pad> createState() => _PadState();
}

class _PadState extends State<Pad> {
  late String _note;
  late RadialGradient _radialGradient;

  @override
  void initState() {
    _note = widget.note;
    _radialGradient = widget.radialGradiant;

    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    var radialGradientDefault = RadialGradient(
      colors: [Colors.white, Colors.white],
    );

    final player = AudioPlayer();

    return GestureDetector(
      onTap: () async {
        setState(() {
          _radialGradient = radialGradientDefault;
          player.setAsset(_note);
          player.play();
        });
        await Future.delayed(
          const Duration(milliseconds: 500),
        );
        setState(() {
          _radialGradient = widget.radialGradiant;
        });
      },
      child: Container(
        decoration: BoxDecoration(
          borderRadius: BorderRadius.circular(8),
          gradient: _radialGradient,
        ),
      ),
    );
  }
}
  • Additional Notes: Trying to run App on Android device tested Samsung Galaxy S21Ultra, since I have windows OS and IOS testing not possible

Running App on Web Test Works Fine

Searched internet was told to Ask for user Permission for Microphone

but to play music we don't need Microphone

本文标签: androidFlutter Audio Playback Issue on Physical DeviceHow do I fix itStack Overflow