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