Just Audio遇_TypeError:Null无法转为MediaItem,请求文档支持
Just Audio调用
setAudioSource触发_TypeError:Null不能转为MediaItem 我基于Just Audio的示例完成了应用开发,现在需要添加背景音乐功能。参照Ryan Heise的简易播放器示例实现后,执行代码await musicPlayer.setAudioSource(AudioSource.uri(Uri.parse(url)));时触发了_TypeError (type 'Null' is not a subtype of type 'MediaItem' in type cast)异常。
出错代码
播放背景音乐函数
Future<void> playBackgroundMusic() async { int rng = Random().nextInt(7); // Inform the operating system of our app's audio attributes etc. // We pick a reasonable default for an app that plays speech. final session = await AudioSession.instance; await session.configure(const AudioSessionConfiguration.speech()); String musicFilename = filenameList[rng]; String url = "MY_SERVER/music/$musicFilename"; final musicPlayer = AudioPlayer(); try { await musicPlayer.setAudioSource(AudioSource.uri(Uri.parse(url))); } on PlayerException catch (e) { print("Error loading audio source: $e"); } musicPlayer.play(); }
函数调用位置(initState)
@override void initState() { super.initState(); playBackgroundMusic(); }
已找到的解决方法
通过参考类似问题,我导入Audio Service并为AudioSource.uri添加tag参数(传入MediaItem实例)后解决了问题,修改后的代码片段如下:
AudioSource.uri( Uri.parse(item.music), tag: MediaItem( id: "${item.id}", album: "${musicImage}", title: "${item.name}", artUri: Uri.parse('${musicImage}'), ), ),
疑问与请求
但Just Audio的官方文档中并未提及必须添加tag参数的要求,此前我提交的相关GitHub issue因描述不够具体未得到解决。现请求指引相关的官方文档内容,或者建议更新Just Audio的文档以明确这一要求。
内容的提问来源于stack exchange,提问作者rjapenga
相关产品推荐
相关产品推荐

