-
[flutter] flutter webview 사용시에 iOS, ipadOS 에서 allowsinlinemediaplayback 허용하기flutter/flutter 공부 2023. 6. 9. 10:35
사용한 플러터 웹뷰 패키지 : webview_flutter 4.0.4
https://pub.dev/packages/webview_flutter
플러터로 간단한 웹뷰 프로젝트를 진행했는데 iOS 에서 갑자기 웹뷰 화면 위로 전체화면을 차지하는 비디오 플레이어가 재생 되어졌습니다.
종료시켜도 계속 자동으로 실행되어서 더이상 뭘 할 수가 없어져버리네요.
원인 파악이 안되서 가만히 생각해보다가 해당 웹페이지에 배경음악이 자동 재생 된다는게 떠올랐습니다.
해당 내용으로 검색해보니까 flutter_webview 에서 allowsinlinemediaplayback 설정을 적용해주면 iOS, ipadOS 에서 배경음악을 백그라운드로 재생시킬 수 있습니다.
해결 방법은 PlatformWebViewControllerCreationParams 를 사용해서 allowsInlineMediaPlayback 를 허용하도록 해줘야 합니다.
아래는 관련 코드입니다.
WebViewController webViewController() { // iOS media player background 재생할 수 있도록 설정 추가 late final PlatformWebViewControllerCreationParams params; if(WebViewPlatform.instance is WebKitWebViewPlatform) { params = WebKitWebViewControllerCreationParams( allowsInlineMediaPlayback: true, // true 로 해줘야 백그라운드 재생 가능 mediaTypesRequiringUserAction: const <PlaybackMediaTypes>{} ); } else { params = const PlatformWebViewControllerCreationParams(); } WebViewController wbController = WebViewController.fromPlatformCreationParams(params); wbController.setJavaScriptMode(JavaScriptMode.unrestricted); wbController.setBackgroundColor(const Color(0x00000000)); wbController.setNavigationDelegate( ...
웹뷰 컨트롤러를 생성하기 전에 PlatformWebViewControllerCreationParams params; 를 작성하고 해당 변수에 params 설정을 변경해주도록 합니다.
그리고 설정한 params 를 웹뷰 컨트롤러에 적용시켜 줍니다.
WebViewController.fromPlatformCreationParams(params)
이렇게 적용하고 실행하면 iOS, ipadOS 에서 배경음악이 나와도 video player 가 뜨는게 아니고 백그라운드로 재생 될 겁니다.
'flutter > flutter 공부' 카테고리의 다른 글
[flutter] actionbar 와 endDrawer 함께 사용하기 (0) 2023.06.08 [flutter] appbar 높이 조절 방법 (1) 2023.06.02 [flutter] PDF 파일 뷰어 만들기(pdfx, internet_file 를 이용) (0) 2023.05.09 [flutter] FutureBuilder 메서드의 AsyncSnapsot 과 Snapshot (0) 2023.02.21 [flutter] textfield 선택해서 키보드 올라온 후 다른곳 누르면 키보드 사라지게 하기 (0) 2021.01.29