【问题标题】:Audio Service displaying RED underline显示红色下划线的音频服务
【发布时间】:2021-10-27 11:03:18
【问题描述】:

最近我决定通过构建一个具有音频功能的应用来提高我的技能。 所以我遇到了这些很酷的依赖项 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)') 不是“BackgroundAudioTask.onStart”的有效覆盖(“未来 函数(Map?)').

到目前为止做了什么

  1. 升级我的 Flutter
  2. 无效并重新启动
  3. 颤振清洁

尽管我做了所有这些,问题仍然存在。

请问哪里做得不好?

【问题讨论】:

  • 鼠标悬停在红线上会出现什么错误?
  • 谢谢,我只是编辑问题,
  • 当我悬停红线时,我得到了名称“AudioPlaybackState”不是类型,因此不能用作类型参数。
  • 并为各自的覆盖得到了这个 'AudioPlayerTask.onStart' ('void Function(Map)') 不是 'BackgroundAudioTask.onStart' 的有效覆盖( 'Future Function(Map?)').
  • 我认为问题在于被覆盖函数的返回类型。他们都返回期货,你只是返回无效。请尝试改变它。

标签: flutter flutter-dependencies


【解决方案1】:

经过多次谷歌搜索,我在一篇中等文章帖子中找到了正确答案, 这是链接Click here

我最好的猜测是,在依赖项升级后,大部分术语不再使用。

现在可以了

【讨论】:

    猜你喜欢
    • 2015-08-13
    • 1970-01-01
    • 2013-08-22
    • 2020-07-29
    • 1970-01-01
    • 2011-09-19
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多