Android 휴대전화의 Google 어시스턴트와 음성으로 상호작용하는 미디어 앱 자동차, TV, 헤드폰은 Android 미디어 세션 API로 구동되며 미디어 작업을 사용합니다. 미디어 작업 수명 주기를 따라가기가 어려울 수 있습니다. 검색을 통한 간단한 재생 요청에는 아래와 같이 문제가 발생할 수 있는 여러 중간 단계가 있습니다. 간소화된 타임라인:
미디어 컨트롤러 테스트 (MCT) 앱을 사용하면 Android에서 미디어 재생의 복잡성을 테스트할 수 있고 미디어 세션 구현을 확인합니다
MCT는 앱의 MediaController
에 관한 정보를 표시합니다.
PlaybackState
및 메타데이터이며 앱 간 미디어 컨트롤을 테스트하는 데 사용할 수 있습니다.
MCT에는 검증 테스트도 포함됩니다.
프레임워크를
QA 테스트를 자동화할 수 있습니다
MCT를 사용하려면 앱에 미디어 브라우저 서비스가 있어야 합니다. MCT가 해당 네트워크에 연결하도록 허용해야 합니다. 자세한 내용은 미디어 브라우저 서비스 빌드 를 참조하세요.
MCT 시작
MCT를 실행하면 다음 두 가지 목록이 표시됩니다.
- Active MediaSessions - MCT를 실행할 때 처음에는 이 목록이 비어 있습니다. '미디어 앱을 찾을 수 없습니다. 알림 활성 미디어 세션을 스캔하려면 리스너 권한이 필요합니다.'라는 메시지가 표시됩니다. 설정을 클릭하여 다음을 수행합니다. 권한 화면으로 이동하여 MCT에 대한 권한을 사용 설정합니다.
- MediaBrowserService 구현 - 이 목록은 미디어 브라우저 서비스를 구현한 앱을 보여줍니다. 미디어 브라우저 서비스를 구현한 경우 앱이 이 목록에 표시되며 그러나 MCT를 사용하려면 앱에서 MCT를 허용 목록에 추가해야 합니다. 자세한 내용은 다음으로 클라이언트 연결 제어 onGetRoot() 를 참조하세요.
수동으로 전화 앱 테스트
MCT가 앱의 미디어 브라우저 서비스에 연결하도록 허용한 경우 앱이 미디어 브라우저 서비스 목록 구현 목록에 표시됩니다. 기기 찾기 제어를 클릭하여 백그라운드에서 앱을 시작합니다.
그렇지 않으면 먼저 백그라운드에서 직접 앱을 시작한 후 활성 미디어 세션 목록에 표시할 시점을 제어합니다.
테스트 준비 및 실행
MCT가 앱을 제어하기 시작하면 앱의 현재 세션이 표시됩니다. metadata: 현재 선택된 미디어 및 세션에서 처리할 준비가 되었습니다.
MCT 컨트롤 페이지 상단에는 텍스트 필드와 함께 검색, URI, 미디어 ID 또는 없음 검색, URI 또는 미디어 ID와 연결된 입력 데이터를 지정합니다( 옵션 중 하나를 선택하세요
텍스트 필드 바로 아래에 있는 Prepare 및 Play 버튼은
적절한 호출 (onPrepare()
, onPrepareFromSearch()
, onPrepareFromUri()
,
onPrepareFromMediaId()
, onPlay()
, onPlayFromSearch()
, onPlayFromUri()
onPlayFromMediaId()
)가 표시됩니다.
오디오 포커스 테스트
제대로 작동하는 미디어 앱은 오디오를 처리할 수 있어야 함 포커스가 있습니다. 다음 방법으로 오디오 포커스를 테스트할 수 있습니다. 다른 오디오 앱을 앱과 함께 실행하는 것이 좋습니다 MCT 제어 페이지에는 다음이 포함됩니다. 오디오 포커스를 요청하고 해제하는 버튼입니다.
오디오 포커스를 테스트하려면 다음 단계를 따르세요.
- 오디오 포커스 드롭다운 메뉴를 사용하여 3가지 길이 힌트 중 하나를 선택합니다.
AUDIOFOCUS_GAIN
,AUDIOFOCUS_GAIN_TRANSIENT
또는AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK
입니다. - 포커스를 요청하려면 버튼을 누르세요.
- 포커스를 해제하려면 버튼을 다시 누르세요.
전송 컨트롤 테스트
왼쪽으로 살짝 밀어 MCT의 UI 뷰를 표시합니다. 현재 보기 표준 미디어 컨트롤러 전송 버튼이 있고 세션의 프로그램 이미지 및 데이터입니다. 사용 중지된 전송 버튼에는 원이 표시됩니다. 주황색입니다. 나머지는 모두 활성 상태입니다.
전송 버튼을 사용하여 플레이어를 테스트합니다. 전송 버튼의 상태입니다. 예상대로 변경됩니다. 예를 들어 재생 버튼을 누르면 가 비활성화되어야 하고, PAUSE 및 STOP 버튼이 활성화되어야 합니다.
선택적 작업을 표시하는 뷰를 보려면 다시 왼쪽으로 스와이프합니다. 각 작업 활성 여부를 표시하는 컨트롤이 있습니다. 활성 상태인 경우 다음을 수행할 수 있습니다. 작업을 수행할 수 있습니다.
미디어 브라우저 서비스가 있는 앱 목록에서 연결한 경우 다음 작업을 할 수 있습니다. 왼쪽으로 두 번 더 스와이프하면 앱 콘텐츠를 위아래로 이동할 수 있습니다. 콘텐츠 트리를 검색할 수 있습니다.
수동으로 동영상 앱 테스트
화면 분할 모드를 사용하여 동영상 앱 컨트롤러를 테스트합니다. 먼저 동영상 앱을 엽니다. MCT를 한 개의 창에서 열고 화면 분할 모드로 엽니다.
인증 테스트 실행
인증 테스트 프레임워크에서는 클릭 한 번으로 테스트를 실행하여 미디어 앱이 재생 요청에 올바르게 응답하는지 확인하세요.
전화 앱 테스트
인증 테스트에 액세스하려면 미디어 옆의 테스트 버튼을 클릭하세요. 있습니다.
MCT 상태
다음 뷰에는 MCT의 MediaController
에 대한 자세한 정보가 표시됩니다.
(예: PlaybackState
, 메타데이터, 큐) 이 기능에는 두 개의 버튼이 있습니다.
을 클릭합니다. 왼쪽 버튼으로 파싱 가능
지정할 수 있습니다 오른쪽 버튼은 뷰를 새로 고치고
최신 정보를 얻을 수 있습니다.
테스트 선택
왼쪽으로 스와이프하면 인증 테스트 뷰가 표시됩니다. 사용 가능한 테스트의 스크롤 가능한 목록을 볼 수 있습니다. 테스트가 검색 테스트에서 재생을 실행하는 경우 텍스트 필드를 사용하여 쿼리 문자열을 입력합니다.
MCT에는 다음 미디어 작업에 대한 테스트가 포함되며 지속적으로 프로젝트에 추가됩니다.
- 재생
- Play From Search
- Play From Media ID
- Play From URI
- 일시중지
- 중지
- Skip To Next
- Skip To Previous
- Skip To Queue Item
- Seek To
테스트 결과
처음에는 뷰 하단의 결과 영역이 비어 있습니다. 그러면 결과를 얻을 수 있습니다 예를 들어 검색에서 재생 테스트를 실행하려면 텍스트 입력란에 검색어를 입력하고 테스트 실행을 클릭합니다. 다음 성공적인 테스트 결과를 보여주는 스크린샷
Android TV 앱 테스트
Android TV에서 MCT를 실행하면 설치된 미디어 앱 목록이 표시됩니다. 앱은 미디어 브라우저를 구현하는 경우에만 이 목록에 표시됩니다. 있습니다.
앱을 선택하면 오른쪽에 검증 테스트 목록이 표시되는 테스트 화면으로 이동합니다.
테스트를 실행하면 화면 왼쪽에 MediaController를 선택합니다. 자세한 내용은 Logcat에서 MCT 로그를 확인하세요.
쿼리가 필요한 테스트는 키보드 아이콘과 함께 표시됩니다. Google 검색 중 하나를 클릭하면 쿼리의 입력란이 열립니다. Enter를 클릭하여 테스트를 실행합니다.
텍스트를 더 쉽게 입력할 수 있도록 adb
명령어를 사용할 수도 있습니다.
adb shell input text your-query
'%s' 사용 가능 단어 사이에 공백을 추가합니다. 예를 들어 명령어는 'hello world' 텍스트를 추가합니다. 입력합니다.
adb shell input text hello%sworld
테스트 빌드
유용하다고 생각되는 테스트와 함께 pull 요청을 제출할 수 있습니다. 새 테스트를 만드는 방법을 알아보려면 MCT GitHub 위키 을 확인하고 인증 테스트 안내를 참고하세요.
참여 안내를 검토하세요.
추가 리소스
MCT는 미디어 API를 구현하는 앱과 함께 사용하도록 되어 있습니다. 자세한 내용은 유니버설 Android 뮤직 플레이어 를 참조하세요.
버그 수정 및 개선은 언제든지 환영합니다. 자세한 내용은 참여 안내를 참조하세요.