私のアプリはDeviceOrientation.portraitUpでのみ表示する必要があります。 youtube_player_flutterを使用してフルスクリーンモードにすると、もちろん横向きのデバイスの向きを使用してフルスクリーンになります。 ただし、フルスクリーンモードを閉じると、横向きのデバイスの向きは引き続き使用可能であり、アプリが混乱する可能性があります。
簡単な修正として、私は
if (controller.value.isFullScreen) {
Navigator.pop(context);
}
に
if (controller.value.isFullScreen) {
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp])
.then((_) {
Navigator.pop(context);
});
}
あなたのコードで。 コードをいじることなく、コントローラーを使用してこれを修正できれば便利です。
ありがとう、
Merijn
このPRはそれを可能にします#226
onExitFullScreen()を呼び出してみましたが、何もしませんでした:
YoutubePlayerBuilder(
onExitFullScreen: (){
print('onExitFullScreen called!!');
SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]);
},
player: YoutubePlayer(
controller: _controller,
), builder: (context , player ) {
return Column(
children: <Widget>[
player,
],
);
},
),
代わりに、私はこれをログで取得しました:
E/flutter (24017): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: The method 'call' was called on null.
E/flutter (24017): Receiver: null
E/flutter (24017): Tried calling: call()
E/flutter (24017): #0 _YoutubePlayerBuilderState.didChangeMetrics (package:youtube_player_flutter/src/widgets/youtube_player_builder.dart:60)
E/flutter (24017): #1 WidgetsBinding.handleMetricsChanged (package:flutter/src/widgets/binding.dart:538)
E/flutter (24017): #2 _rootRun (dart:async/zone.dart:1184)
E/flutter (24017): #3 _CustomZone.run (dart:async/zone.dart:1077)
E/flutter (24017): #4 _CustomZone.runGuarded (dart:async/zone.dart:979)
E/flutter (24017): #5 _invoke (dart:ui/hooks.dart:261)
E/flutter (24017): #6 _updateWindowMetrics (dart:ui/hooks.dart:64)
@vipinnegi90修正が進行中です。
@ vipinnegi90 v7.0.0+3でお試しください
@sarbagyastha動作しています。 すごい!