質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Cassandra

Cassandraは、key-valueストア型のデータベース管理ソフト及び オープンソースの分散データベース管理システムのことです。

Q&A

0回答

2714閲覧

Flutterのvideo_playerで動画が再生できず非表示になる。

rkgmpngn

総合スコア7

Flutter

Flutterは、iOSとAndroidのアプリを同じコードで開発するためのフレームワークです。オープンソースで開発言語はDart。双方のプラットフォームにおける高度な実行パフォーマンスと開発効率を提供することを目的としています。

Cassandra

Cassandraは、key-valueストア型のデータベース管理ソフト及び オープンソースの分散データベース管理システムのことです。

0グッド

0クリップ

投稿2022/02/25 13:56

前提・実現したいこと

Flutterでmp4を再生したい。

Androidで画面が起動し、動画のビューが表示されるが、しばらくすると(5秒ほど)エラーが発生して動画のビューが非表示になる。また、再生ボタンを押しても同様の現象が起きる。(iOSでは特に起きない)

発生している問題・エラーメッセージ

D/CCodecBuffers( 7529): [c2.android.aac.decoder#823:1D-Input.Impl[N]] codec released a buffer owned by client (index 1) W/ConnectionTracker( 7529): Exception thrown while unbinding W/ConnectionTracker( 7529): java.lang.IllegalArgumentException: Service not registered: lm@a4094d2 W/ConnectionTracker( 7529): at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1757) W/ConnectionTracker( 7529): at android.app.ContextImpl.unbindService(ContextImpl.java:1874) W/ConnectionTracker( 7529): at android.content.ContextWrapper.unbindService(ContextWrapper.java:792) W/ConnectionTracker( 7529): at ce.b(:com.google.android.gms.dynamite_measurementdynamite@201817048@20.18.17 (040400-0):1) W/ConnectionTracker( 7529): at ce.a(:com.google.android.gms.dynamite_measurementdynamite@201817048@20.18.17 (040400-0):5) W/ConnectionTracker( 7529): at ln.A(:com.google.android.gms.dynamite_measurementdynamite@201817048@20.18.17 (040400-0):10) W/ConnectionTracker( 7529): at ky.a(:com.google.android.gms.dynamite_measurementdynamite@201817048@20.18.17 (040400-0):3) W/ConnectionTracker( 7529): at dy.run(:com.google.android.gms.dynamite_measurementdynamite@201817048@20.18.17 (040400-0):2) W/ConnectionTracker( 7529): at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462) W/ConnectionTracker( 7529): at java.util.concurrent.FutureTask.run(FutureTask.java:266) W/ConnectionTracker( 7529): at iw.run(:com.google.android.gms.dynamite_measurementdynamite@201817048@20.18.17 (040400-0):15) D/BufferPoolAccessor2.0( 7529): bufferpool2 0xb4000074add32238 : 4(8388608 size) total buffers - 4(8388608 size) used buffers - 0/4 (recycle/alloc) - 6/23 (fetch/transfer) D/BufferPoolAccessor2.0( 7529): evictor expired: 1, evicted: 1 D/BufferPoolAccessor2.0( 7529): bufferpool2 0xb4000074add32b78 : 6(49152 size) total buffers - 5(40960 size) used buffers - 1/7 (recycle/alloc) - 6/26 (fetch/transfer) D/BufferPoolAccessor2.0( 7529): evictor expired: 1, evicted: 1 W/CCodec ( 7529): previous call to queue exceeded timeout E/MediaCodec( 7529): Codec reported err 0x80000000, actionCode 0, while in state 6 D/SurfaceUtils( 7529): disconnecting from surface 0xb40000754dd35010, reason disconnectFromSurface D/CCodecBufferChannel( 7529): [c2.android.avc.decoder#498] MediaCodec discarded an unknown buffer E/BufferQueueProducer( 7529): [SurfaceTexture-0-7529-0](id:1d6900000000,api:0,p:-1,c:7529) cancelBuffer: BufferQueue has no E/MediaCodecVideoRenderer( 7529): Video codec error E/MediaCodecVideoRenderer( 7529): java.lang.IllegalStateException E/MediaCodecVideoRenderer( 7529): at android.media.MediaCodec.native_dequeueInputBuffer(Native Method) E/MediaCodecVideoRenderer( 7529): at android.media.MediaCodec.dequeueInputBuffer(MediaCodec.java:2855) E/MediaCodecVideoRenderer( 7529): at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter.dequeueInputBufferIndex(SynchronousMediaCodecAdapter.java:93) E/MediaCodecVideoRenderer( 7529): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:1209) E/MediaCodecVideoRenderer( 7529): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:845) E/MediaCodecVideoRenderer( 7529): at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:945) E/MediaCodecVideoRenderer( 7529): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:478) E/MediaCodecVideoRenderer( 7529): at android.os.Handler.dispatchMessage(Handler.java:102) E/MediaCodecVideoRenderer( 7529): at android.os.Looper.loop(Looper.java:223) E/MediaCodecVideoRenderer( 7529): at android.os.HandlerThread.run(HandlerThread.java:67) E/ExoPlayerImplInternal( 7529): Playback error E/ExoPlayerImplInternal( 7529): com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/avc, avc1.64001F, -1, null, [1280, 720, 29.975233], [-1, -1]), format_supported=YES E/ExoPlayerImplInternal( 7529): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:555) E/ExoPlayerImplInternal( 7529): at android.os.Handler.dispatchMessage(Handler.java:102) E/ExoPlayerImplInternal( 7529): at android.os.Looper.loop(Looper.java:223) E/ExoPlayerImplInternal( 7529): at android.os.HandlerThread.run(HandlerThread.java:67) E/ExoPlayerImplInternal( 7529): Caused by: com.google.android.exoplayer2.video.MediaCodecVideoDecoderException: Decoder failed: c2.android.avc.decoder E/ExoPlayerImplInternal( 7529): at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.createDecoderException(MediaCodecVideoRenderer.java:1410) E/ExoPlayerImplInternal( 7529): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:864) E/ExoPlayerImplInternal( 7529): at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:945) E/ExoPlayerImplInternal( 7529): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:478) E/ExoPlayerImplInternal( 7529): ... 3 more E/ExoPlayerImplInternal( 7529): Caused by: java.lang.IllegalStateException E/ExoPlayerImplInternal( 7529): at android.media.MediaCodec.native_dequeueInputBuffer(Native Method) E/ExoPlayerImplInternal( 7529): at android.media.MediaCodec.dequeueInputBuffer(MediaCodec.java:2855) E/ExoPlayerImplInternal( 7529): at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter.dequeueInputBufferIndex(SynchronousMediaCodecAdapter.java:93) E/ExoPlayerImplInternal( 7529): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.feedInputBuffer(MediaCodecRenderer.java:1209) E/ExoPlayerImplInternal( 7529): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:845) E/ExoPlayerImplInternal( 7529): ... 5 more

該当のソースコード

コードは公式ドキュメントのSampleのコードをそのまま使っております。
https://pub.dev/packages/video_player#example

import 'package:video_player/video_player.dart'; import 'package:flutter/material.dart'; void main() => runApp(VideoApp()); class VideoApp extends StatefulWidget { @override _VideoAppState createState() => _VideoAppState(); } class _VideoAppState extends State<VideoApp> { VideoPlayerController _controller; @override void initState() { super.initState(); _controller = VideoPlayerController.network( 'https://flutter.github.io/assets-for-api-docs/assets/videos/bee.mp4') ..initialize().then((_) { // Ensure the first frame is shown after the video is initialized, even before the play button has been pressed. setState(() {}); }); } @override Widget build(BuildContext context) { return MaterialApp( title: 'Video Demo', home: Scaffold( body: Center( child: _controller.value.isInitialized ? AspectRatio( aspectRatio: _controller.value.aspectRatio, child: VideoPlayer(_controller), ) : Container(), ), floatingActionButton: FloatingActionButton( onPressed: () { setState(() { _controller.value.isPlaying ? _controller.pause() : _controller.play(); }); }, child: Icon( _controller.value.isPlaying ? Icons.pause : Icons.play_arrow, ), ), ), ); } @override void dispose() { super.dispose(); _controller.dispose(); } }

試したこと

エラーの内容で検索や、githubなどのissueを見たりしたが、これといった解決方法が見つからなかった。

補足情報(FW/ツールのバージョンなど)

動画の再生のライブラリはデファクト?「video_player」を使用している。
バージョンは最新のバージョン。
https://pub.dev/packages/video_player

確実ではないが、実機、エミュレータ共にAPIレベル30で発生している。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問