问题
先看图片

我 肉眼对比了好几次,这不是同一个类型吗?怎么就没法赋值了呢?
点进去toStream看看

原因
外头的Uint8List
和里头的Uint8List
不是同一个类型,我靠
里头的

外头的Uint8List,点击进去看是这个

尼玛,这两个玩意呀[捂脸]
为什么是1个小时才发现问题呢?一开始是我自信强转清缓存各种动作。
另外一个原因是,我鼠标放在错误上,提示出问题了,一闪而过。最后是我解决错误的提示的提示才找到原因的。错误提示一闪的原因是插件冲突,卸载或者关闭一些插件即可。IDE有些bug也是正常的。
如何解决呢?
别名咯
import 'dart:typed_data' as TypeData;
StreamController<TypeData.Uint8List>? _audioStreamController;
var recordingDataController = StreamController<TypeData.Uint8List>();
Future<void> startRecordingStream() async {
_audioStreamController = StreamController<TypeData.Uint8List>();
_audioStreamController!.stream.listen((chunk) {
//TODO:
});
await _recorder.startRecorder(
codec: Codec.pcm16,
sampleRate: 16000,
numChannels: 1,
toStream: recordingDataController.sink,
);
}
这样子就可以了!
Okay,今天的经验分享到这里。