Youtube_player_flutter: flutter:コントローラーはメソッド呼び出しの準備ができていません。 [バグ]

作成日 2019年11月17日  ·  31コメント  ·  ソース: sarbagyastha/youtube_player_flutter

iOS 11シミュレーターでサンプルプロジェクトを実行していますが、ビデオをタップするたびにこのエラーが発生します。

    "<MRMediaRemoteCommandInfo: 0x60000136a2e0 for path <decode: missing data>
    "<MRMediaRemoteCommandInfo: 0x60000136a280, Play, enabled = 0, options = (null)>",
    "<MRMediaRemoteCommandInfo: 0x60000136a920, EnableLanguageOption, enabled = 0, options = (null)>",
    "<MRMediaRemoteCommandInfo: 0x60000136a940, ChangePlaybackRateCommand, enabled = 0, options = (null)>",
    "<MRMediaRemoteCommandInfo: 0x60000136aa60, SkipForward, enabled = 0, options = (null)>",
    "<MRMediaRemoteCommandInfo: 0x60000136aa80, EndRewind, enabled = 0, options = (null)>",
    "<MRMediaRemoteCommandInfo: 0x60000136aa40, EndFastForward, enabled = 0, options = (null)>",
    "<MRMediaRemoteCommandInfo: 0x60000136aaa0, PreviousTrack, enabled = 0, options = (null)>",
    "<MRMediaRemoteCommandInfo: 0x60000136aac0, Stop, enabled = 0, options = (null)>",
    "<MRMediaRemoteCommandInfo: 0x60000136aae0, Pause, enabled = 0, options = (null)>",
    "<MRMediaRemoteCommandInfo: 0x60000136ab00, SeekToPlaybackPosition, enabled = 0, options = (null)>",
    "<MRMediaRemoteCommandInfo: 0x60000136ab20 for path <decode: missing data>
flutter: The controller is not ready for method calls.
flutter: The controller is not ready for method calls.
flutter: The controller is not ready for method calls.
flutter: The controller is not ready for method calls.
flutter: The controller is not ready for method calls.
bug

最も参考になるコメント

最新バージョンを試しましたが、機能しません

全てのコメント31件

@ fabiot21この問題はv6.0.3 + 1に存在しましたか?

@sarbagyastha古いバージョンを試しましたが、同じ問題が発生しています。

@ fabiot21制約バージョンを削除して確認しましたか? のように:キャレットなしyoutube_player_flutter: 6.0.3+1

arbsarbagyasthaはい:(

@ fabiot21実際のデバイスでも試してみてください。 シミュレーターが再生をサポートしていない場合や、プラットフォームビューが高価であるためにフリーズする場合があります。

@sarbagyasthaこれは実際のデバイスでも見ました。 少しランダムに見えますが、非常に頻繁に発生します。 数回試した後に消えることもありますが、そうでないこともあります。

リリースモードとデバッグモードの両方で、Android9のv6.0.3 + 2でテストされています。

@sarbagyasthaこれについての追加情報はありますか? この問題は、本番環境とデバッグ環境の両方でランダムに発生します(上記のコメントを参照)。 時間がない場合は、お手伝いさせていただきます。

Androidのバグを確認します。
D/eglCodecCommon( 5922): setVertexArrayObject: set vao to 2 (2) 0 0 I/flutter ( 5922): The controller is not ready for method calls. D/eglCodecCommon( 5922): setVertexArrayObject: set vao to 1 (1) 0 0 I/flutter ( 5922): The controller is not ready for method calls.

Androidシミュレーターでこれを見始めたところです。

確認します、このバグはまだ存在しています

私はアンドロイドにも同じバグがあります。

同じエラーが発生しました。動画の読み込みが完了していないことがわかりました。解決して回答を送信します。

同じ問題。

返信が遅くなって申し訳ありませんが、スケジュールが厳しかったです。 今週中にこの問題に取り組む予定です。

私もこのスタックトレースを取得しています: https ://github.com/flutter/flutter/issues/25714

私も同じ問題を抱えていました。 そして私はこのようにこの問題を解決しました。

YoutubePlayerControllerクラスでは、
_callMethodreload()を追加します。

_callMethod(String methodString){
if(value.isReady){
value.webViewController?.evaluateJavascript(methodString);
} それ以外 {
reload();
print( "#######################");
print( 'コントローラーはメソッド呼び出しの準備ができていません。');
}
}

1つの観察は次のとおりです:
「autoPlay」フラグがオンの場合、ビデオの再生が開始された後でも、「isReady」はfalseのままです。
したがって、その後、callMethodを呼び出すと、エラーが返されます。

_callMethod(String methodString){
if(value.isReady){
value.webViewController?.evaluateJavascript(methodString);
} それ以外 {
print( 'コントローラーはメソッド呼び出しの準備ができていません[$ methodString]。');
}
}

@royycc
ああ、自動再生についてはチェックしませんでした。 しかし、自動再生を使用しない場合、私の解決策は機能します。 :)

私も同じ問題を抱えていました。 そして私はこのようにこの問題を解決しました。

YoutubePlayerControllerクラスでは、
_callMethodreload()を追加します。

_callMethod(String methodString){
if(value.isReady){
value.webViewController?.evaluateJavascript(methodString);
} それ以外 {
reload();
print( "#######################");
print( 'コントローラーはメソッド呼び出しの準備ができていません。');
}
}
こんにちは、私はあなたの解決策を試しましたが、それは機能していません。 同じエラー

@ipolx
こんにちは、エラーのログを見せていただけますか?
つまり、ボタンをクリックしたときに、リロードのログが表示されましたか?

@ipolx
こんにちは、エラーのログを見せていただけますか?
つまり、ボタンをクリックしたときに、リロードのログが表示されましたか?

どういうわけか、私はこのエラーを管理しました。 フラッターバージョンの問題だったと思います。 とてもうまくいきます!

@ipolx
ニース、私の喜び:)

一部のデバイスは、矢印機能が何であるかをまだ認識していません。 row_youtube_player.dartのコードを置き換える必要があります。

イベント:{
onReady :(イベント)=> Ready.postMessage( "Ready")、
onStateChange:(event)=> sendPlayerStateChange(event.data)、
onPlaybackQualityChange:(event)=> PlayplayQualityChange.postMessage(event.data)、
onPlaybackRateChange :(イベント)=> PlaybackRateChange.postMessage(event.data)、
onError :(エラー)=> Errors.postMessage(error.data)
}、

イベント:{
onReady:function(event){Ready.postMessage( "Ready")}、
onStateChange:function(event){sendPlayerStateChange(event.data)}、
onPlaybackQualityChange:function(event){PlaybackQualityChange.postMessage(event.data)}、
onPlaybackRateChange:function(event){PlaybackRateChange.postMessage(event.data)}、
onError:function(error){Errors.postMessage(error.data)}
}、

必要に応じて自動的にリロードするelseパーツを追加して、RawYoutubePlayerの次のメソッドを変更することで問題を修正しました

onPageFinished:(_){
if(_isPlayerReady){
controller.updateValue(
controller.value.copyWith(isReady:true)、
);
}それ以外{
print( "ビデオのリロード");
controller.reload();
}
}、

Flutterを最新バージョンに更新し、問題を解決しました

Flutterを最新バージョンに更新し、問題を解決しました

最新の安定?

最新バージョンを試しましたが、機能しません

最新バージョンで同じエラーが発生する

私も同じ例外を受け取っています。 本番アプリに使用しています。

最新バージョンのiOSシミュレーターで動作しています
youtube_player_flutter:^ 8.0.0
flutter_inappwebview:^ 5.3.2
Xcodeでデプロイメントターゲット12.1を設定します。

ここでも同じエラーが発生します

すべてを試しましたが、解決策が見つかりませんでした。親指は表示されますが、ビデオが開始されません

最新バージョンのflutterとYouTube_player_flutterを使用する

このページは役に立ちましたか?
0 / 5 - 0 評価