ykd_audio_recorder 0.0.3 copy "ykd_audio_recorder: ^0.0.3" to clipboard
ykd_audio_recorder: ^0.0.3 copied to clipboard

outdated

A new flutter plugin project.

example/lib/main.dart

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

import 'package:flutter/services.dart';
import 'package:ykd_audio_recorder/ykd_audio_recorder.dart';

void main() => runApp(MyApp());

enum RecordStatusEnum { Ready, Recording, Pause }

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  RecordStatusEnum _status = RecordStatusEnum.Ready;
  Timer _timer;
  double _volumn = 0;

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

  void startGetVolumn() {
    if (_timer == null) {
      _timer = new Timer.periodic(const Duration(milliseconds: 100),
          (Timer t) async {
        double volumn = await YkdAudioRecorder.getVolumn();
        print('获取音量 $volumn');
        this.setState(() {
          _volumn = volumn;
        });
      });
    }
  }

  void stopGetVolumn() {
    if (_timer != null) {
      _timer.cancel();
      _timer = null;
    }
  }

  @override
  Widget build(BuildContext context) {
    String text = '';
    print(_status);
    switch (_status) {
      case RecordStatusEnum.Ready:
        text = '开始';
        break;
      case RecordStatusEnum.Pause:
        text = '继续';
        break;
      case RecordStatusEnum.Recording:
        text = '暂停';
        break;
      default:
    }
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Plugin example app'),
        ),
        body: Center(
            child: Column(
          children: <Widget>[
            RaisedButton(
              onPressed: () async {
                if (_status == RecordStatusEnum.Ready) {
                  RecordStatus status = await YkdAudioRecorder.start();
                  if (!status.success) {
                    print('start record error ${status.error}');
                    return;
                  }
                  _status = RecordStatusEnum.Recording;
                  this.startGetVolumn();
                } else if (_status == RecordStatusEnum.Recording) {
                  YkdAudioRecorder.pause();
                  _status = RecordStatusEnum.Pause;
                  this.stopGetVolumn();
                } else if (_status == RecordStatusEnum.Pause) {
                  YkdAudioRecorder.resume();
                  _status = RecordStatusEnum.Recording;
                  this.startGetVolumn();
                }
                this.setState(() {});
              },
              child: Text(text),
            ),
            _status != RecordStatusEnum.Ready
                ? RaisedButton(
                    onPressed: () async {
                      RecordInfo info = await YkdAudioRecorder.stop();
                      print('record result ${info.duration} ${info.path}');
                    },
                    child: Text('结束录音'),
                  )
                : Container(),
            new Text('音量: $_volumn')
          ],
        )),
      ),
    );
  }
}
0
likes
0
pub points
0%
popularity

Publisher

unverified uploader

A new flutter plugin project.

Homepage

License

unknown (LICENSE)

Dependencies

file, flutter, path, path_provider

More

Packages that depend on ykd_audio_recorder