사용자에게 제어 : 미디어 세션 API를 제공합니다
이것을 상상해보십시오 : 킬러 Kendrick Lamar 트랙은 많은 브라우저 탭 중 하나에서 폭발합니다. 당신은 그루브를하고 있지만 누군가가 들어 와서 일시 중지해야합니다. 어떤 탭? 브라우저는 제한된 도움말을 제공합니다. 모든 오디오를 음소거 할 수도 있지만 직접 제어는 더 나을 수 없습니까?
미디어 세션 API가이를 해결합니다. 재생 탭을 넘어 미디어 재생 컨트롤을 확장하여 다음을 통해 액세스를 제공합니다.
- 모바일 장치 알림 영역
- 웨어러블
- 데스크탑 미디어 허브
또한 미디어 키 및 음성 비서를 사용하여 제어 할 수 있습니다 (Siri, Google Assistant, Bixby, Alexa).
미디어 세션 API 이해
API는 두 인터페이스를 중심으로합니다.
-
MediaMetadata
: 미디어 세부 정보 (제목, 앨범, 아트 워크, 아티스트 - Kendrick Lamar,이 예에서)를 제공합니다. -
MediaSession
: 재생 기능을 관리합니다.
구현하기 전에 항상 브라우저 지원을 확인하십시오.
if (네비게이터의 '미디어 세션') { // 미디어 세션 API 코드는 여기에 있습니다 }
MediaMetadata
인터페이스
MediaMetadata.MediaMetadata()
MediaMetadata
객체를 만듭니다. 주요 속성에는 다음이 포함됩니다.
-
MediaMetadata.title
: 미디어 제목. -
MediaMetadata.artist
Artist : 아티스트 또는 그룹. -
MediaMetadata.album
: 앨범 이름. -
MediaMetadata.artwork
:MediaImage
객체의 배열 (이미지 URL, 크기, 마임 유형).
Kendrick Lamar의 "Alright"의 예 :
if (네비게이터의 '미디어 세션') { navigator.mediasession.metadata = New MediaMetadata ({ 제목 : '좋아요', 아티스트 : 'Kendrick Lamar', 앨범 : 'To Pimp a Butterfly', 작품 : [ {src : 'https : // mytechnicalarticle/kendrick-lamar/to-pimp-a-butterfly/alright/96x96', 크기 : '96x96', type : 'image/png'}, {src : 'https : // mytechnicalarticle/kendrick-lamar/to-pimp-a-butterfly/alright/128x128', 크기 : '128x128', type : 'image/png'}, // 더 많은 크기 추가 (192x192, 256x256 등) ]] }); }
MediaSession
인터페이스
이 인터페이스는 사용자 재생 컨트롤을 제공합니다.
-
play()
: 재생을 시작합니다. -
pause()
: 재생을 일시 중지합니다. -
previoustrack()
: 이전 트랙을 재생합니다. -
nexttrack()
: 다음 트랙을 재생합니다. -
seekbackward()
: 뒤로 추구합니다 (지정된 오프셋으로). -
seekforward()
: 앞으로 추구합니다. -
seekto()
: 특정 시간을 추구합니다. -
stop()
: 재생 중지. -
skipad()
: 건너 뛰기 광고 (구현 세부 사항은 간결하게 생략 됨).
setActionHandler()
이러한 작업에 대해 핸들러를 등록합니다. 플레이/일시 중지 예 :
let alright = new Audio (); // htmlaudioElement 대신 오디오를 사용합니다 if (네비게이터의 '미디어 세션') { navigator.mediasession.setactionHandler ( 'play', () => Alright.Play ()); navigator.mediasession.setactionHandler ( 'pause', () => allight.pause ()); }
previoustrack
, nexttrack
, seekbackward
, seekforward
, seekto
및 stop
에서도 비슷한 핸들러가 구현됩니다. seekbackward
및 seekforward
details.seekOffset
있으면 기본 10 초 오프셋을 사용하십시오. seekto
표준과 빠른 추구를 모두 처리합니다. stop
핸들러는 재생 시간을 일시 중지하고 재설정합니다.
각 조치 후 setPositionState()
사용하여 재생 상태를 업데이트해야합니다.
if (네비게이터의 '미디어 세션') { navigator.mediasession.setPositionState ({ 기간 : 알겠습니다. Playbackrate : 알겠습니다. Playbackrate, 위치 : 알겠습니다 .CurrentTime }); }
오류 처리는 중요합니다. 랩 setActionHandler
try...catch
.
오류 처리 및 상태 업데이트를 통합 한 완전한 예는 원본 기사에 제공됩니다. 자리 표시 자 이미지 URL을 실제 URL로 바꾸는 것을 잊지 마십시오. 데모는 다양한 장치와 플랫폼에서 API의 기능을 보여줍니다. 향상된 사용자 경험을 위해 미디어가 풍부한 애플리케이션 에서이 API를 구현하는 것을 고려하십시오.
위 내용은 사용자에게 제어 : 미디어 세션 API를 제공합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

새로운 프로젝트가 시작될 때, Sass 컴파일은 눈을 깜박이게합니다. 특히 BrowserSync와 짝을 이루는 경우 기분이 좋습니다.

이번 주에 플랫폼 뉴스 라운드 업 RONDUP, Chrome은로드에 대한 새로운 속성, 웹 개발자를위한 접근성 사양 및 BBC Move를 소개합니다.

Goofonts는 개발자 부인과 디자이너 남편이 서명 한 사이드 프로젝트로, 둘 다 타이포그래피의 큰 팬입니다. 우리는 Google에 태그를 지정했습니다

이것은 처음으로 HTML 요소를보고 있습니다. 나는 그것을 잠시 동안 알고 있었지만 아직 스핀을 위해 그것을 가져 갔다. 그것은 꽤 시원하고 있습니다

이 두 부분으로 구성된 시리즈의 첫 번째 부분은 우리가 2 턴 슬라이더를 얻는 방법을 자세히 설명했습니다. 이제 우리는 일반적인 멀티 덤프 케이스를 살펴 보지만 다른 것과

한동안 iTunes는 팟 캐스팅에서 큰 개 였으므로 "Podcast 구독"을 링크 한 경우 다음과 같습니다.
