当前位置: 首页 > news >正文

做淘宝客没网站网站制作公司怎么样

做淘宝客没网站,网站制作公司怎么样,长春新建设,设计企业网站布局考虑的因素flutter开发实战-just_audio实现播放音频暂停音频设置音量等 最近开发过程中遇到需要播放背景音等音频播放#xff0c;这里使用just_audio来实现播放音频暂停音频设置音量等 一、引入just_audio 在pubspec.yaml引入just_audio just_audio: ^2.7.0在iOS上#xff0c;video_p…flutter开发实战-just_audio实现播放音频暂停音频设置音量等 最近开发过程中遇到需要播放背景音等音频播放这里使用just_audio来实现播放音频暂停音频设置音量等 一、引入just_audio 在pubspec.yaml引入just_audio just_audio: ^2.7.0在iOS上video_player使用的是AVPlayer进行播放。 在Android上video_player使用的是ExoPlayer。 二、使用前设置 2.1 在iOS中的设置 在iOS工程中info.plist添加一下设置以便支持HttpsHTTP的视频地址 keyNSAppTransportSecurity/key dictkeyNSAllowsArbitraryLoads/keytrue/ /dict2.2 在Android中的设置 需要在/android/app/src/main/AndroidManifest.xml文件中添加网络权限 uses-permission android:nameandroid.permission.INTERNET/三、just_audio实现播放音频暂停音频设置音量等 引入just_audio后可以使用AudioPlayer来播放音频 3.1 常用操作如下 播放 await _audioPlayer.play();暂停 await _audioPlayer.pause();seek await _audioPlayer.seek(position);停止 await _audioPlayer.pause(); await _audioPlayer.seek(Duration.zero);设置音量 await _audioPlayer.setVolume(volume);3.2 使用just_audio实现播放player 这里通过player来获取SDAudioPlayerState状态控制音频的暂停音频设置音量等操作 import package:flutter_app/manager/logger_manager.dart; import package:just_audio/just_audio.dart;// 播放回调 typedef SDAudioPlayerCallBack void Function(SDAudioPlayerState state, SDAudioPlayerError? error);// 播放音频的状态 enum SDAudioPlayerState {idle, // 默认loading, // 加载中buffering, // 缓存中ready, // 可播放completed, // 播放完成 }// 播放音频出现错误 class SDAudioPlayerError {String? message; }// 定义优先级的类 class SDMusicConfig {// 音频文件地址late String audioUrl ;late bool runLoop false; // 是否循环播放// 构造函数SDMusicConfig(this.audioUrl, this.audioPriority, this.runLoop); }// 播放音频文件 class SDMusicPlayer {// 音频播放late AudioPlayer _audioPlayer;// 优先级late SDMusicConfig _musicConfig;late bool _playing false; // 是否正在播放late SDAudioPlayerState _playerState SDAudioPlayerState.idle; // 状态late SDAudioPlayerCallBack? _playerCallBack;SDMusicPlayer(this._audioPlayer, this._musicConfig){setAudioUrl(this._musicConfig.audioUrl);openPlayCallBack((state, error) {});}SDMusicConfig getMusicConfig() {return _musicConfig;}void openPlayCallBack(SDAudioPlayerCallBack playerCallBack) {_playerCallBack playerCallBack;_audioPlayer.playerStateStream.listen((state) {_playing state.playing;switch(state.processingState) {case ProcessingState.idle: {_playerState SDAudioPlayerState.idle;break;}case ProcessingState.loading: {_playerState SDAudioPlayerState.loading;break;}case ProcessingState.buffering: {_playerState SDAudioPlayerState.buffering;break;}case ProcessingState.ready: {_playerState SDAudioPlayerState.ready;break;}case ProcessingState.completed: {_playerState SDAudioPlayerState.completed;if (_musicConfig.runLoop true) {// 循环播放的时候seek(Duration.zero);play();} else {stop();}break;}default:}if (_playerCallBack ! null) {_playerCallBack!(_playerState, null);}});}// var duration await player.setUrl(https://foo.com/bar.mp3);Futurevoid setAudioUrl(String url) async {SDAudioPlayerError? error;if (url.isNotEmpty) {// Set the audio source but manually load audio at a later point.try {_audioPlayer.setUrl(url, preload: true);// Acquire platform decoders and start loading audio.var duration await _audioPlayer.load();print(url${url} duration${duration});} on PlayerException catch (e) {// iOS/macOS: maps to NSError.code// Android: maps to ExoPlayerException.type// Web: maps to MediaError.code// Linux/Windows: maps to PlayerErrorCode.indexprint(SDAudioPlayer Error code: ${e.code});// iOS/macOS: maps to NSError.localizedDescription// Android: maps to ExoPlaybackException.getMessage()// Web/Linux: a generic message// Windows: MediaPlayerError.messageprint(SDAudioPlayer Error message: ${e.message});error SDAudioPlayerError();error.message e.message;} on PlayerInterruptedException catch (e) {// This call was interrupted since another audio source was loaded or the// player was stopped or disposed before this audio source could complete// loading.LoggerManager().debug(SDAudioPlayer Connection aborted: ${e.message});error SDAudioPlayerError();error.message e.message;} catch (e) {// Fallback for all errorsprint(e: ${e});error SDAudioPlayerError();error.message e.toString();}} else {error SDAudioPlayerError();error.message 播放地址不能为空;}if (_playerCallBack ! null) {_playerCallBack!(_playerState, error);}}void play() async {// Usually you dont want to wait for playback to finish.if (_musicConfig.audioUrl ! null _musicConfig.audioUrl.isNotEmpty) {if (_playing false) {// 正在播放await _audioPlayer.play();}}}void pause() async {if (_musicConfig.audioUrl ! null _musicConfig.audioUrl.isNotEmpty) {await _audioPlayer.pause();}}void stop() async {if (_musicConfig.audioUrl ! null _musicConfig.audioUrl.isNotEmpty) {await _audioPlayer.pause();await _audioPlayer.seek(Duration.zero);}}void seek(Duration position) async {if (_musicConfig.audioUrl ! null _musicConfig.audioUrl.isNotEmpty) {await _audioPlayer.seek(position);}}void setVolume(double volume) async {if (_musicConfig.audioUrl ! null _musicConfig.audioUrl.isNotEmpty) {await _audioPlayer.setVolume(volume);}}// 不需要该播放器则需要调用该方法void dispose() async {await _audioPlayer.dispose();} }四、小结 flutter开发实战-just_audio实现播放音频暂停音频设置音量等。 学习记录每天不停进步。
http://www.yutouwan.com/news/88968/

相关文章:

  • 高清设计网站推荐高端网站建设套餐
  • 做网站开票是多少个点的票药学专业网站
  • 给别人做网站会连累自己吗镇江网站制作价格
  • 品牌推广的渠道有哪些龙岗优化网站建设
  • 网站建设 营业执照 经营范围网站服务器参数查询
  • ps做网站字号大小项目名称
  • 目录做排名 网站苏州园区网站建设公司
  • 一个网站的建设步骤官网网站模板
  • 网站测速工具怎样推广app别人才愿意下载
  • 成品网站怎样建设建网站定制
  • 网站广告位代码凡客诚品网址是多少
  • 本地主机 搭建网站百度2345网址导航
  • 中国人做暧暧视频网站绿园区建设局网站
  • a做爰视频免费观费网站在线视频网站 一级做爰片
  • 山东天成水利建设 网站怎么注册一个软件平台
  • 泉州建站方案宿迁房产中介
  • 公司网站建设方案pptru域名注册
  • 网站建设的好公司网上营销策略有哪些
  • 班级网站建设模板北京网站建设市场
  • 自己做电台直播的网站制作企业网站页面多少钱
  • 毕设网站开发需要做什么摄影网站功能设计
  • 网站 模板下载网易云跟帖 wordpress
  • 推荐几个做网站比较好的公司wordpress数据库容量
  • 腾讯理财是什么样的做网站建立公司网站时什么是重要的
  • 免费舆情网站直接打开app开发工具哪个好
  • 网站建设步骤详解视频教程个人网站搭建平台
  • 菏泽网站建设 梧桐树下载应用市场
  • html 网站新功能介绍滕州网站设计
  • 怎么注册网站域名个人简历表格电子版下载
  • 江苏分销网站建设网站建设的目的及功能