recorder_widget.dart 1.01 KB
import 'package:flutter/material.dart';
import 'package:flutter_sound/public/flutter_sound_recorder.dart';

/// 利用 StatefulWidget 的状态管理,自动清理 FlutterSoundRecorder, 释放资源
class RecorderWidget extends StatefulWidget {
  late final FlutterSoundRecorder _recorder;

  FlutterSoundRecorder get recorder => _recorder;

  RecorderWidget({super.key, required FlutterSoundRecorder recorder}) {
    _recorder = recorder;
  }

  @override
  State<StatefulWidget> createState() {
    return _RecorderWidgetState();
  }
}

class _RecorderWidgetState extends State<RecorderWidget> {
  late BuildContext _context;

  @override
  Widget build(BuildContext buildContext) {
    return SizedBox(
    );
  }

  @override
  void initState() {
    super.initState();
  }

  @override
  void dispose() {
    print('销毁 RecorderWidget -------------------->');
    final widget = _context.widget as RecorderWidget;
    try {
      widget.recorder.closeRecorder();
    } catch (e) {
      print(e);
    }
    super.dispose();
  }
}