Flutter 实现一个简单的音视频App(三)

本文由动哒公众号(dongda_5g),QQ群(174353204)提供,欢迎关注获取技术支持,有任何问题群里都会回复。

接上一篇文章(找不到文章?加QQ群。),本次咱们完成将视频上传到七牛云的功能。

(1)获取七牛云token

我这里token的获取地址为:http://api.360inhands.com:8080/qiniu_token/token/get?bucket=dynamic-app-public(不知道怎么搭建?还是加群)。

(2)pubspec.yaml添加插件

  dio: ^3.0.9
  sy_flutter_qiniu_storage: ^0.1.4

其中,dio是网络插件,sy_flutter_qiniu_storage是七牛云插件。

(3)增加QiniuModel类

class QiniuToken {
  int status;
  String info;
  String token;
​
  QiniuToken({this.status, this.info, this.token});
​
  QiniuToken.fromJson(Map<String, dynamic> json) {
    status = json['status'];
    info = json['info'];
    token = json['token'];
  }
​
  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['status'] = this.status;
    data['info'] = this.info;
    data['token'] = this.token;
    return data;
  }
}

(4)dio获取token

    Dio().get('path').then((response) {
      QiniuToken qiniuToken = QiniuToken.fromJson(response.data);
      print(qiniuToken.token);
    });

(5)获取token之后,则使用sy_flutter_qiniu_storage插件上传即可。我们看下具体写法。

final syStorage = new SyFlutterQiniuStorage();
_process = 0.0;
//监听上传进度
syStorage.onChanged().listen((dynamic percent) {
  double p = percent;
  setState(() {
    _process = p;
  });
  print(percent);
});
​
String key = DateTime.now().millisecondsSinceEpoch.toString() +
    '.' +
    file.path.split('.').last;
String token = qiniuToken.token;
//上传文件
bool result = await syStorage.upload(file.path, token, key);
print(result); //true 上传成功,false失败

项目github地址:https://github.com/jishaofeng89/video_app_03

想要了解更多的同学们,请关注下我的公众号哟。

image

猜你喜欢

转载自blog.csdn.net/weixin_29003023/article/details/106247133