Canardoux / flutter_sound

Flutter plugin for sound. Audio recorder and player.
Mozilla Public License 2.0
874 stars 569 forks source link

[HELP]: #927

Open myThorsten opened 2 years ago

myThorsten commented 2 years ago

Hello :) I am already using flutter_sound_lite successfully within a Flutter project. Now I have hacked together a home screen widget using home_widget. The sample works, now I want to play sound using the home screen widget. This is my callback-function that is called when the user presses a button on the home screen widget:

void backgroundCallback(Uri? data) async {
  if (data?.host == 'titleclicked') {
    /* This is from the home_widget sample */
    final greetings = ['Hello', 'Hallo', 'Bonjour', 'Hola', 'Ciao', '哈洛', '안녕하세요', 'xin chào'];
    final selectedGreeting = greetings[Random().nextInt(greetings.length)];

    await HomeWidget.saveWidgetData<String>('title', selectedGreeting);
    await HomeWidget.updateWidget(name: 'HomeWidgetExampleProvider', iOSName: 'HomeWidgetExample');

    /* Here I try to use flutter_sound_lite to play a sound */
    final FlutterSoundPlayer player = FlutterSoundPlayer(logLevel: Level.debug);
    player.openAudioSession();
    final File file = await FileHelper.assetToFile(assetSource: 'default/woo.aac');
    print(file);
    await player.startPlayer(
      fromURI: file.path,
      codec: Codec.aacADTS,
      sampleRate: 32000,
    );
  }
}

This is the error I get:

I/flutter (32602): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (32602): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (32602): │ #0   FlutterSoundPlayer._openAudioSession
package:flutter_sound_lite/public/flutter_sound_player.dart:686
I/flutter (32602): │ #1   FlutterSoundPlayer.openAudioSession.<anonymous closure>
package:flutter_sound_lite/public/flutter_sound_player.dart:651
I/flutter (32602): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter (32602): │ 🐛 Resetting flutter_sound Player Plugin
I/flutter (32602): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
E/flutter (32602): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: MissingPluginException(No implementation found for method resetPlugin on channel com.dooboolab.flutter_sound_player)
E/flutter (32602): #0      MethodChannel._invokeMethod
package:flutter/…/services/platform_channel.dart:165
E/flutter (32602): <asynchronous suspension>
E/flutter (32602): #1      FlutterSoundPlayer._openAudioSession
package:flutter_sound_lite/public/flutter_sound_player.dart:688
E/flutter (32602): <asynchronous suspension>
E/flutter (32602): #2      FlutterSoundPlayer.openAudioSession.<anonymous closure>
package:flutter_sound_lite/public/flutter_sound_player.dart:651
E/flutter (32602): <asynchronous suspension>
E/flutter (32602): #3      BasicLock.synchronized
package:synchronized/src/basic_lock.dart:33
E/flutter (32602): <asynchronous suspension>
E/flutter (32602): #4      FlutterSoundPlayer.openAudioSession
package:flutter_sound_lite/public/flutter_sound_player.dart:650
E/flutter (32602): <asynchronous suspension>
E/flutter (32602):
I/flutter (32602): File: '/data/user/0/com.example/cache/default/woo.aac'
I/flutter (32602): ┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
I/flutter (32602): │ #0   FlutterSoundPlayer._startPlayer
package:flutter_sound_lite/public/flutter_sound_player.dart:1096
I/flutter (32602): │ #1   FlutterSoundPlayer.startPlayer.<anonymous closure>
package:flutter_sound_lite/public/flutter_sound_player.dart:1076
I/flutter (32602): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
I/flutter (32602): │ 🐛 FS:---> startPlayer
I/flutter (32602): └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
E/flutter (32602): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: Exception: Player is not open
E/flutter (32602): #0      FlutterSoundPlayer._waitOpen
package:flutter_sound_lite/public/flutter_sound_player.dart:608
E/flutter (32602): #1      FlutterSoundPlayer._startPlayer
package:flutter_sound_lite/public/flutter_sound_player.dart:1097
E/flutter (32602): #2      FlutterSoundPlayer.startPlayer.<anonymous closure>
package:flutter_sound_lite/public/flutter_sound_player.dart:1076
E/flutter (32602): #3      FlutterSoundPlayer.startPlayer.<anonymous closure>
package:flutter_sound_lite/public/flutter_sound_player.dart:1075
E/flutter (32602): #4      BasicLock.synchronized
package:synchronized/src/basic_lock.dart:31
E/flutter (32602): #5      FlutterSoundPlayer.startPlayer
package:flutter_sound_lite/public/flutter_sound_player.dart:1075
E/flutter (32602): #6      backgroundCallback
package:app/…/application/background_callback.dart:24
E/flutter (32602): <asynchronous suspension>

so basically

My question: Is what I am trying (calling flutter_sound_lite in 'headless' home screen widget mode) even possible?

github-actions[bot] commented 10 months ago

This issue is stale because it has been open 90 days with no activity. Leave a comment or this will be closed in 7 days.