flutter - 显示红色下划线的音频服务
问题描述
最近我决定通过构建一个具有音频功能的应用程序来提高我的技能。所以我遇到了这些很酷的 Dependencies just_audio和audio_service,但是它的使用显示了错误,我不知道出了什么问题。
下面是我的代码
import 'dart:async';
import 'package:audio_service/audio_service.dart';
import 'package:just_audio/just_audio.dart';
MediaControl playControl = MediaControl(
androidIcon: 'drawable/ic_action_play_arrow',
label: 'Play',
action: MediaAction.play,
);
MediaControl pauseControl = MediaControl(
androidIcon: 'drawable/ic_action_pause',
label: 'Pause',
action: MediaAction.pause,
);
MediaControl skipToNextControl = MediaControl(
androidIcon: 'drawable/ic_action_skip_next',
label: 'Next',
action: MediaAction.skipToNext,
);
MediaControl skipToPreviousControl = MediaControl(
androidIcon: 'drawable/ic_action_skip_previous',
label: 'Previous',
action: MediaAction.skipToPrevious,
);
MediaControl stopControl = MediaControl(
androidIcon: 'drawable/ic_action_stop',
label: 'Stop',
action: MediaAction.stop,
);
class AudioPlayerTask extends BackgroundAudioTask {
//
var _queue = <MediaItem>[];
int _queueIndex = -1;
AudioPlayer _audioPlayer = new AudioPlayer();
late AudioProcessingState _skipState;
late bool _playing;
bool get hasNext => _queueIndex + 1 < _queue.length;
bool get hasPrevious => _queueIndex > 0;
MediaItem get mediaItem => _queue[_queueIndex];
late StreamSubscription<AudioPlaybackState> _playerStateSubscription;
late StreamSubscription<AudioPlaybackEvent> _eventSubscription;
@override
void onStart(Map<String, dynamic> params) {
super.onStart(params);
}
@override
void onPlay() {}
@override
void onPause() {}
@override
void onSkipToNext() async {}
@override
void onSkipToPrevious() {}
void skip(int offset) async {}
@override
Future<void> onStop() async {}
@override
void onSeekTo(Duration position) {}
@override
void onClick(MediaButton button) {}
@override
Future<void> onFastForward() async {}
@override
Future<void> onRewind() async {}
_handlePlaybackComplete() {
//
}
}
兴趣依赖
just_audio: ^0.9.7
audio_service: ^0.17.1
http: ^0.13.3
得到什么
从上图中,您将看到以下是红色下划线
AudioPlaybackState
, void onStart()
, void onPlay()
, void onPause()
, void onSkipToNext()
, void onSkipToPrevious()
, void onSeekTo(Duration position)
,void onClick(MediaButton button)
问题是我无法将它们导入代码中,例如AudioPlaybackState甚至不在显示的关键字列表中
当我将鼠标悬停在红色下划线周围时,我得到以下信息
名称“AudioPlaybackState”不是类型,因此不能用作类型参数。
并在我将鼠标悬停在它周围时为每个相应的覆盖获得以下信息
'AudioPlayerTask.onStart' ('void Function(Map<String, dynamic>)') 不是 'BackgroundAudioTask.onStart' ('Future Function(Map<String, dynamic>?)') 的有效覆盖。
到目前为止做了什么
- 升级我的 Flutter
- 无效并重新启动
- 颤振清洁
尽管我做了所有这些,问题仍然存在。
请问什么做得不好?
解决方案
推荐阅读
- javascript - 如何使用 ASP 经典从父窗口传递的查询字符串变量中填充弹出窗口的 HTML 输入字段
- c# - 如何为具有与内置单元格相同的布局指标的“UITableView”提供自定义“UITableCell”?
- wildfly - Hazelcast 需要作为现有集群中的客户端而不是成员连接
- postgresql - Postgresql 使用 docker-compose 成功部署,但未在 docker stack deploy
- c# - Windows 窗体在启动时尴尬地“调整大小”
- ruby - 如果是 env,则在 Vagrantfile 中设置默认值。变量未设置
- java - Maven 问题更新和依赖项
- laravel - 使用 mongodb 重置 Laravel 密码
- python - Python:创建网络的最佳方式?
- java - 当我使用 Web 服务从 xml 文档中获取数据时出现空指针异常