1. 비디오를 재생해야 하는 위치에 비디오 재생 버튼을 가져온 다음 비디오가 재생될 때 비디오 컴포넌트를 초기화하여 전체 애플리케이션에 비디오 컴포넌트가 하나만 있는지 확인할 수 있습니다(비디오 구성 요소의 위치를 계산해야 함). 전체 방법은 이론적인 상황일 뿐입니다.
2. app.js에 currentVIdeoId(재생 중인 비디오 컴포넌트의 ID)와 videoContext(현재 재생 중인 비디오의 객체, wx.createVideoContext 메서드를 통해 가져오기) 두 개를 설정하고 페이지의 js에서 이를 제어합니다. 비디오 컴포넌트가 재생 메서드에 바인딩되었는지 확인합니다.
? & ltvideo src = " URL " bind play = " play " & gt; & lt/video & gt;
재생 메서드에서 이를 구현하는 것은 괜찮습니다.
var id = e . 현재 대상 . id;
? if (id!= null) {
if (app.currentVideoId!= id) {
?if (app.videoContext!= null) {
app . 비디오 컨텍스트 . stop();
console . warn(" pause ");
?}
?app . current video id = id;
?app . video context = wx . createvideocontext(id);
}
?}?
currentVideoId와 videoContext 두 개의 객체만 있기 때문에 메서드의 재생 모니터 이벤트는 마지막 재생을 일시 중지하고 값을 할당하고 다음 비디오 재생 모니터가 들어올 때 판단 호출을 수행합니다.
3. 리치 텍스트 컴포넌트가 포함된 비디오 컴포넌트를 동시에 재생하는 경우.
위 예시에서 사용자 지정 서식 있는 텍스트 컴포넌트에 여러 개의 동영상 컴포넌트가 포함된 경우 위의 방법을 사용하면 오류가 발생합니다. 로그에는 동영상이 일시 중지되거나 중지되는 것으로 표시되지만 아무런 효과가 없습니다. 동영상 API 및 팁을 확인하시기 바랍니다.
API에 따르면 ID는 동영상 컴포넌트의 ID이며 "Object this"가 있습니다. 하지만 위의 API 사용법에 따르면 아이디가 있는 동영상 오브젝트를 직접 가져올 수 있지만, API 설명에 "커스텀 컴포넌트에서는 현재 컴포넌트 인스턴스의 이것을 사용하여 컴포넌트 내 동영상 컴포넌트를 조작한다"고 되어 있으므로 커스텀 컴포넌트에 추가해야 한다고 결론을 내립니다. 위의 API 사용법에서 동영상이 페이지 페이지에 있는 경우 wx.createVideoContext 파라미터에 id만 작성해도 문제가 없지만, 동영상이 커스텀 컴포넌트에 있는 경우 VideoContext 객체를 올바르게 반환하기 위해서는 반드시 이 파라미터를 추가해야 합니다.