Canardoux / flutter_sound

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

[BUG]: FlutterSoundPlayer can't run in isolate. Exception: MissingPluginException(No implementation found for method resetPlugin on channel com.dooboolab.flutter_sound_player) #906

Open liemfs opened 2 years ago

liemfs commented 2 years ago

Flutter Sound Version :

Severity


Platforms you faced the error


Describe the bug

To Reproduce

  1. Add required package:
    flutter_sound
    flutter_foreground_task
  2. Modify AndroidManifest.xls (Full steps to modify AndroidManifest.xml can be found here: https://pub.dev/packages/flutter_foreground_task)
    
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 
4. Simple code to reproduce expcetion

import 'dart:isolate';

import 'package:flutter/material.dart'; import 'package:flutter_foreground_task/flutter_foreground_task.dart'; import 'package:flutter_sound/flutter_sound.dart'; import 'package:logger/logger.dart';

void main() { WidgetsFlutterBinding.ensureInitialized(); runApp(const MyApp()); }

class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key);

@override Widget build(BuildContext context) { Future(() async { await FlutterForegroundTask.init( androidNotificationOptions: AndroidNotificationOptions(channelId: 'flutter_sound', channelName: 'Flutter Sound'), );

  if (await FlutterForegroundTask.isRunningService) {
    await FlutterForegroundTask.restartService();
  } else {
    await FlutterForegroundTask.startService(
      notificationTitle: 'Flutter Sound',
      notificationText: 'Flutter Sound',
      callback: startCallback,
    );
  }
});
return const MaterialApp();

} }

void startCallback() { FlutterForegroundTask.setTaskHandler(ForegroundTaskHandler()); }

class ForegroundTaskHandler extends TaskHandler { @override Future onDestroy(DateTime timestamp, SendPort? sendPort) async {}

@override Future onEvent(DateTime timestamp, SendPort? sendPort) async {}

@override Future onStart(DateTime timestamp, SendPort? sendPort) async { try { FlutterSoundPlayer soundPlayer = FlutterSoundPlayer(logLevel: Level.debug); await soundPlayer.openPlayer(); // <- Error Here } catch (e) { print(e); } } }


----------------------------------------------

# Logs!!!!

I/flutter ( 6137): ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── I/flutter ( 6137): │ #0 new FlutterSoundPlayer I/flutter ( 6137): │ #1 ForegroundTaskHandler.onStart I/flutter ( 6137): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ I/flutter ( 6137): │ 🐛 ctor: FlutterSoundPlayer() I/flutter ( 6137): └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── I/flutter ( 6137): ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── I/flutter ( 6137): │ #0 FlutterSoundPlayer._openAudioSession I/flutter ( 6137): │ #1 FlutterSoundPlayer.openPlayer. I/flutter ( 6137): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ I/flutter ( 6137): │ 🐛 FS:---> openAudioSession I/flutter ( 6137): └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── I/flutter ( 6137): ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── I/flutter ( 6137): │ #0 FlutterSoundPlayer._openAudioSession I/flutter ( 6137): │ #1 FlutterSoundPlayer.openPlayer. I/flutter ( 6137): ├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄ I/flutter ( 6137): │ 🐛 Resetting flutter_sound Player Plugin I/flutter ( 6137): └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── I/flutter ( 6137): MissingPluginException(No implementation found for method resetPlugin on channel com.dooboolab.flutter_sound_player)


-----------------------------------------------------------------
getrasa commented 1 year ago

I second this. Same issue when calling openRecorder().

TaimoorHassan commented 1 year ago

@Larpoux Any update on this ?

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.