사용자에게 제어 : 미디어 세션 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)

뜨거운 주제











그것은#039; VUE 팀에게 그것을 끝내는 것을 축하합니다. 나는 그것이 막대한 노력과 오랜 시간이라는 것을 알고 있습니다. 모든 새로운 문서도 있습니다.

최근 Bitcoin의 가격이 20k 달러가 넘는 USD가 최근에 등반되면서 최근 30k를 끊었으므로 Ethereum을 만드는 데 깊이 다이빙을 할 가치가 있다고 생각했습니다.

나는 누군가이 매우 합법적 인 질문으로 글을 썼습니다. Lea는 브라우저에서 유효한 CSS 속성 자체를 얻는 방법에 대해 블로그를 작성했습니다. 이는 이와 같습니다.

다른 날, 나는 Corey Ginnivan의 웹 사이트에서 스크롤 할 때 카드 모음이 서로 쌓이는 것을 발견했습니다.

목표가 귀하의 사이트를 동시에 다른 크기로 표시하는 이러한 데스크탑 앱이 많이 있습니다. 예를 들어, 글을 쓸 수 있습니다

WordPress 편집기에서 사용자에게 직접 문서를 표시 해야하는 경우 가장 좋은 방법은 무엇입니까?

플렉스 레이아웃의 보라색 슬래시 영역에 대한 질문 플렉스 레이아웃을 사용할 때 개발자 도구 (d ...)와 같은 혼란스러운 현상이 발생할 수 있습니다.
