Flutter:播放错误 E/ExoPlayerImplInternal(8813):com.google.android.exoplayer2.ExoPlaybackException:源错误

Nib*_*ain 6 android video-player flutter

当我尝试使用video_player 2.2.10播放视频文件时,我在 Samsung g610 (Android v6.0 Marshmallow) 中收到此错误

 Unexpected exception loading stream
E/LoadTask( 8813):   java.lang.IllegalStateException: Top bit not zero: -2029762164
E/LoadTask( 8813):       at com.google.android.exoplayer2.util.ParsableByteArray.readUnsignedIntToInt(ParsableByteArray.java:371)
E/LoadTask( 8813):       at com.google.android.exoplayer2.extractor.mp4.AtomParsers.parseStbl(AtomParsers.java:406)
E/LoadTask( 8813):       at com.google.android.exoplayer2.extractor.mp4.AtomParsers.parseTraks(AtomParsers.java:146)
E/LoadTask( 8813):       at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.processMoovAtom(Mp4Extractor.java:483)
E/LoadTask( 8813):       at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.processAtomEnded(Mp4Extractor.java:442)
E/LoadTask( 8813):       at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.readAtomPayload(Mp4Extractor.java:424)
E/LoadTask( 8813):       at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.read(Mp4Extractor.java:242)
E/LoadTask( 8813):       at com.google.android.exoplayer2.source.BundledExtractorsAdapter.read(BundledExtractorsAdapter.java:127)
E/LoadTask( 8813):       at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1047)
E/LoadTask( 8813):       at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:409)
E/LoadTask( 8813):       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
E/LoadTask( 8813):       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
E/LoadTask( 8813):       at java.lang.Thread.run(Thread.java:764)
E/ExoPlayerImplInternal( 8813): Playback error
E/ExoPlayerImplInternal( 8813):   com.google.android.exoplayer2.ExoPlaybackException: Source error
E/ExoPlayerImplInternal( 8813):       at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:624)
E/ExoPlayerImplInternal( 8813):       at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:600)
E/ExoPlayerImplInternal( 8813):       at android.os.Handler.dispatchMessage(Handler.java:102)
E/ExoPlayerImplInternal( 8813):       at android.os.Looper.loop(Looper.java:164)
E/ExoPlayerImplInternal( 8813):       at android.os.HandlerThread.run(HandlerThread.java:65)
E/ExoPlayerImplInternal( 8813):   Caused by: com.google.android.exoplayer2.upstream.Loader$UnexpectedLoaderException: Unexpected IllegalStateException: Top bit not zero: -2029762164
E/ExoPlayerImplInternal( 8813):       at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:430)
E/ExoPlayerImplInternal( 8813):       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
E/ExoPlayerImplInternal( 8813):       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
E/ExoPlayerImplInternal( 8813):       at java.lang.Thread.run(Thread.java:764)
E/ExoPlayerImplInternal( 8813):   Caused by: java.lang.IllegalStateException: Top bit not zero: -2029762164
E/ExoPlayerImplInternal( 8813):       at com.google.android.exoplayer2.util.ParsableByteArray.readUnsignedIntToInt(ParsableByteArray.java:371)
E/ExoPlayerImplInternal( 8813):       at com.google.android.exoplayer2.extractor.mp4.AtomParsers.parseStbl(AtomParsers.java:406)
E/ExoPlayerImplInternal( 8813):       at com.google.android.exoplayer2.extractor.mp4.AtomParsers.parseTraks(AtomParsers.java:146)
E/ExoPlayerImplInternal( 8813):       at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.processMoovAtom(Mp4Extractor.java:483)
E/ExoPlayerImplInternal( 8813):       at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.processAtomEnded(Mp4Extractor.java:442)
E/ExoPlayerImplInternal( 8813):       at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.readAtomPayload(Mp4Extractor.java:424)
E/ExoPlayerImplInternal( 8813):       at com.google.android.exoplayer2.extractor.mp4.Mp4Extractor.read(Mp4Extractor.java:242)
E/ExoPlayerImplInternal( 8813):       at com.google.android.exoplayer2.source.BundledExtractorsAdapter.read(BundledExtractorsAdapter.java:127)
E/ExoPlayerImplInternal( 8813):       at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1047)
E/ExoPlayerImplInternal( 8813):       at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:409)
E/ExoPlayerImplInternal( 8813):       ... 3 more
Run Code Online (Sandbox Code Playgroud)

Mat*_*oma 0

尝试执行这样的构建方法:

Widget build(BuildContext context) {
return SingleChildScrollView(
  child: Column(
    children: <Widget>[
      Container(padding: const EdgeInsets.only(top: 20.0)),
      const Text('With remote mp4'),
      Container(
        padding: const EdgeInsets.all(20),
        child: AspectRatio(
          aspectRatio: _controller.value.aspectRatio,
          child: Stack(
            alignment: Alignment.bottomCenter,
            children: <Widget>[
              VideoPlayer(_controller),
              ClosedCaption(text: _controller.value.caption.text),
              _ControlsOverlay(controller: _controller),
              VideoProgressIndicator(_controller, allowScrubbing: true),
            ],
          ),
        ),
      ),
    ],
  ),
);
}
}
Run Code Online (Sandbox Code Playgroud)