Flutter 视频播放器初始化颤振问题

Flutter 视频播放器初始化颤振问题,flutter,dart,Flutter,Dart,视频url来自api。我试着使用视频播放器,但没有播放。。在initState()上初始化时,它工作。但是我需要初始化构建方法 return FutureBuilder( future: initializingPlayer(snapshot.data[index].content), builder: (BuildContext context,AsyncSnapshot<VideoPlayerC

视频url来自api。我试着使用视频播放器,但没有播放。。在
initState()
上初始化时,它工作。但是我需要初始化构建方法

  return FutureBuilder(
                      future: initializingPlayer(snapshot.data[index].content),
                      builder: (BuildContext context,AsyncSnapshot<VideoPlayerController> snapshot){
                        if (snapshot.connectionState == ConnectionState.done) {
                          return InkWell(
                            onTap: () {
                              setState(() {
                                snapshot.data.value.isPlaying
                                    ? snapshot.data.pause()
                                    : snapshot.data.play();
                              });
                            },
                            child: snapshot.data.value.initialized
                                ? AspectRatio(
                              aspectRatio: snapshot.data
                                  .value.aspectRatio,
                              child: VideoPlayer(snapshot.data),
                            )
                                : Container(),
                          );
                        }else{
                          return Center(child: CircularProgressIndicator());
                        }
                      }
                  );
返回FutureBuilder(
未来:初始化播放器(快照.data[index].content),
生成器:(BuildContext上下文,异步快照){
if(snapshot.connectionState==connectionState.done){
回墨槽(
onTap:(){
设置状态(){
snapshot.data.value.isplay
?snapshot.data.pause()
:snapshot.data.play();
});
},
子项:snapshot.data.value.initialized
?AspectRatio(
aspectRatio:snapshot.data
.value.aspectRatio,
子项:视频播放器(快照.数据),
)
:Container(),
);
}否则{
返回中心(子项:CircularProgressIndicator());
}
}
);
初始化播放器方法

  Future<VideoPlayerController> initializingPlayer(String content) async {
    return VideoPlayerController.network(
        content
    )..initialize();
  }
未来初始化播放器(字符串内容)异步{
返回VideoPlayerController.network(
内容
)..初始化();
}
控制台错误

E/ExoPlayerImplInternal(3609):播放错误。 E/ExoPlayerImplInternal(3609): com.google.android.exoplayer2.ExoPlaybackException: com.google.android.exoplayer2.audio.AudioSink$初始化异常: AudioTrack初始化失败:0,配置(48000,12,48000) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer 2.audio.mediaCodeAudioRenderer.processOutputBuffer(mediaCodeAudioRenderer.java:646) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer2.mediacodec.mediacoderenderer.drainOutputBuffer(mediacoderenderer.java:1355) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer2.mediacodec.mediacoderenderer.render(mediacoderenderer.java:663) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:529) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:300) E/ExoPlayerImplInternal(3609):在 dispatchMessage(Handler.java:104) E/ExoPlayerImplInternal(3609):在 loop(Looper.java:166)E/ExoPlayerImplInternal( 3609):位于android.os.HandlerThread.run(HandlerThread.java:65) E/ExoPlayerImplInternal(3609):由以下原因引起: com.google.android.exoplayer2.audio.AudioSink$初始化异常: AudioTrack初始化失败:0,配置(48000,12,48000) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer2.audio.DefaultAudioSink.initializeAudioTrack(DefaultAudioSink.java:1128) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer2.audio.DefaultAudioSink.initialize(DefaultAudioSink.java:532) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer2.audio.DefaultAudioSink.handleBuffer(DefaultAudioSink.java:593) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer2.audio.MediaCodeAudioRenderer.processOutputBuffer(MediaCodeAudioRenderer.java:640) E/ExoPlayerImplInternal(3609):。。。再加上7个W/ACodec(3609):强制 在ExecutingState中接收到关机时OMX状态变为空闲 D/SurfaceUtils(3609):从表面断开0x7485feb010,原因 带ACodec(3609)的表面断开:强制OMX状态为空闲 在ExecutingState E/AudioTrack(3609)中接收到关机时: AudioFlinger无法创建曲目,状态:-12 E/AudioTrack JNI( 3609):初始化AudioTrack E/android.media.AudioTrack时出错-12( 3609):初始化AudioTrack时出现错误代码-20。 E/ExoPlayerImplInternal(3609):播放错误。 E/ExoPlayerImplInternal(3609): com.google.android.exoplayer2.ExoPlaybackException: com.google.android.exoplayer2.audio.AudioSink$初始化异常: AudioTrack初始化失败:0,配置(48000,12,48000) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer2.audio.MediaCodeAudioRenderer.processOutputBuffer(MediaCodeAudioRenderer.java:646) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer2.mediacodec.mediacoderenderer.drainOutputBuffer(mediacoderenderer.java:1355) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer2.mediacodec.mediacoderenderer.render(mediacoderenderer.java:663) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:529) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:300) E/ExoPlayerImplInternal(3609):在 dispatchMessage(Handler.java:104) E/ExoPlayerImplInternal(3609):在 loop(Looper.java:166)E/ExoPlayerImplInternal( 3609):位于android.os.HandlerThread.run(HandlerThread.java:65) E/ExoPlayerImplInternal(3609):由以下原因引起: com.google.android.exoplayer2.audio.AudioSink$初始化异常: AudioTrack初始化失败:0,配置(48000,12,48000) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer2.audio.DefaultAudioSink.initializeAudioTrack(DefaultAudioSink.java:1128) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer2.audio.DefaultAudioSink.initialize(DefaultAudioSink.java:532) E/ExoPlayerImplInternal(3609):在 com.google.android.exoplayer2.audio.DefaultAudioSink.handl