Laravel을 사용한 그룹 비디오 시청
2957 단어 laravelphpvideojavascript
TALL 스택을 사용하여 Laravel의 경험을 구현하는 방법을 설명합니다.
프레젠테이션 이벤트
다음 이벤트는 발표자가 방송합니다.
이벤트는 Laravel Echo Server , Laravel Websockets 또는 Soketi 을 사용하여 브로드캐스트됩니다. 채널에서 말하기
streaming
.이벤트 듣기
참가자Livewire 구성 요소에서 수신기를 정의합니다.
protected $listeners = [
'echo:steaming,VideoChoice' => 'process_video_choice',
'echo:steaming,Play' => 'play',
'echo:streaming,Pause' => 'pause',
'echo:streaming,GoToMoment' => 'process_goto'
];
이벤트 처리
각 이벤트는
dispatchBrowserEvent
를 사용하여 프런트 엔드Alpine.js 코드로 전달됩니다.예를 들어 비디오 순간으로 이동하려면 발표자의 지시에 따라
private function process_goto($data)
{
$moment = $data['moment];
$this->dispatchBrowserEvent('goto-moment', ['moment' => $moment]);
}
브라우저에서 비디오 제어
Alpine.js에서는 Livewire의 이벤트를 수신한 후 다음을 수행합니다.
예를 들어 잠시 시간을 내거나 동영상을 전환하려면
<video x-ref="video"
x-data="{ play: false }"
@goto-moment.window="$refs.video.currentTime = event.detail.moment"
@video-choice.window="$refs.video.src = event.detail.video_file_path; $refs.video.load();"
>
</video>
발표자 인터페이스
비디오 목록과 비디오 플레이어가 있는 웹 페이지.
단순화를 위해 발표자가 웹 페이지에 HTML
video
요소를 가지고 있다고 가정합니다.동영상 요소의 재생 및 일시 중지는 다음을 사용하여 Alpine.js에서 전송됩니다.
Livewire.emit('play');
Livewire.emit('pause');
동영상의 특정 부분으로 이동하면
Livewire.emit('seek', { 'moment': $this.refs.video.currentTime });
Livewire에서 처리하려면 리스너에서,
protected $listeners = ['seek' => 'process_seek'];
public function process_seek($data)
{
$moment = $payload['moment'];
}
Reference
이 문제에 관하여(Laravel을 사용한 그룹 비디오 시청), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/kornatzky/group-video-watching-with-laravel-5gp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)