미니앱 웹뷰에서 WebRTC(getUserMedia / RTCPeerConnection) 지원 여부 문의

이 글의 성격은 무엇인가요?

질문 / 문제 해결

내용을 설명해주세요

안녕하세요. 실시간 음성 대화 기능이 있는 웹 기반 파티게임을 미니앱으로 올리려고 준비 중입니다. 웹뷰의 미디어/WebRTC 지원 범위를 미리 알고 설계하고 싶어 몇 가지 여쭤봅니다.

  1. 마이크 입력 (getUserMedia)
    웹뷰 안에서 navigator.mediaDevices.getUserMedia({ audio: true }) 로 사용자 마이크에 접근할 수 있나요?
  • 가능하다면 권한 선언은 어떻게 하나요? (granite.config.ts의 permissions 필드에 넣는 값이 있는지, 아니면 별도 설정이 있는지)
    iOS와 Android 각각 동작이 다른지도 알고 싶습니다.
  1. 수신 전용 WebRTC (마이크 없이 듣기만)
    마이크 접근이 어렵더라도, RTCPeerConnection 으로 상대방 오디오를 받아서 재생만 하는 것(수신 전용, recvonly)은 가능한가요?
  • 즉 내 마이크는 안 열고, 다른 참가자 목소리를 스피커로 듣기만 하는 용도입니다.
    RTCPeerConnection 자체가 웹뷰에서 사용 가능한지 궁금합니다.
  1. 오디오 자동재생 정책
    사용자 제스처(탭) 이후 오디오/미디어 재생에 제약이 있는지도 알려주시면 감사하겠습니다.
  • 만약 마이크·WebRTC가 지원되지 않으면 텍스트 모드로 대체할 계획이라, 지원 범위를 확정한 뒤에 개발 방향을 정하려고 합니다. 확인 부탁드립니다. 감사합니다!

안녕하세요 :slight_smile:
WebView에서 navigator.mediaDevices.getUserMedia({ audio: true }) 사용을 별도로 막고 있지 않아, 사용자 마이크 접근이 가능합니다.
마이크 사용을 위해 granite.config.ts의 permissions 필드에 별도 값을 추가하실 필요는 없습니다.
WebView에서는 표준 Web API를 직접 호출해 사용하시면 되고, 실제 권한 요청/허용 UI는 iOS/Android의 WebView 및 OS 정책을 따릅니다.

별도로 WebRTC 사용을 막고 있지 않아서 사용이 가능합니다. 오디오/미디어 재생은 웹뷰 정책을 그대로 따르고 있습니다.
감사합니다 :man_bowing: