This theme component allows users to “pop out” media into a floating window while they browse the site. They can even navigate to a different topic and the media will continue working.
It works with any <iframe> or <video> (with some special treatment for lazyYT). It adds a button to every compatible thing, which then opens a little popup in the bottom right.
You can then “minimise” it, which keeps the audio going in the background, or completely close it.
At the moment the size of the video is decided by the original embed. I’d like to add a “resizing” feature, either a “click and drag”, or just simply 3 buttons “small”, “medium”, “large”.
Currently this obscures the composer… simple solution is to just close the popup if you want to write a post .
I have fixed this with the addition of an explicit z-index, and some explicit colours. With the vincent theme it now looks like this when you mouse-over:
사용자들이 다른 창을 열지 않고도 탄핵 심문 중계를 볼 수 있도록 이 기능을 막 설치했는데, 반응이 매우 뜨거웠습니다 (한 사용자는 "정말 편리해요. 놀라울 정도로, 지금까지 경험한 포럼 인터페이스 중 단연 최고입니다."라고 댓글을 달았죠). 덕분에 스마트폰과 태블릿 사용자들도 이 기능을 원하게 되었습니다. 모바일 기기에서는 여러 창을 동시에 열 수 없기 때문에, 이 기능은 매우 유용합니다.
태블릿과 스마트폰에서도 이 기능을 사용하려면 Common CSS의 64번 줄과 82번 줄에서 no-touch를 제거한 후, 다음과 같은 코드를 추가하여 작은 화면에서 플레이어 크기를 조정하세요:
터치 기기에서는 길게 누르면(hover) 컨트롤 아이콘이나 미디어 컨트롤이 표시되고, 다른 곳을 탭하면 다시 숨겨집니다.
스마트폰에서는 이 기능을 비활성화할까 고민했지만, 플레이어가 접힌 상태에서도 오디오를 들을 수 있으므로 여전히 유용합니다.
이것은 알려진 제한 사항이라고 생각하지만, 유튜브는 접힌 상태에서 오디오가 재생되지 않습니다. 게시글에서 유튜브 재생을 시작했는데 나중에 팝아웃을 결정했다면, 플로팅 창에서 영상을 재생할 수 있는 방법이 없습니다. 먼저 재생하지 않은 상태에서 팝아웃을 한 후에야 플로팅 창에서 재생할 수 있습니다.
링크를 단순히 붙여넣고 Discourse의 lazyYT를 사용하는 대신, YouTube 영상을 iFrame으로 게시하면 정상적으로 작동하는 것 같습니다.
이렇게 작동하려면 사이트에서 YouTube iFrame을 활성화해야 합니다. 설정 → "허용된 iFrame"으로 이동하여 https://www.youtube.com/을 화이트리스트에 추가하세요.
그런 다음 iFrame 코드를 붙여넣으면(YouTube에서 어떤 영상이든 공유 → 임베드에서 iFrame 코드를 찾을 수 있습니다) iFrame을 통해 임베드된 YouTube 영상이 미디어 오버레이(Media Overlay) 구성 요소와 완전히 기능적으로 작동합니다. 즉, 다음과 같이 게시해야 합니다:
Media Overlay 컴포넌트가 imgur와 같은 사이트의 비디오가 포럼에 표시되지 않도록 막고 있었습니다. 103번째 줄에서 video를 제거하여 문제를 해결했습니다. 즉, $('iframe, video, .lazyYT', $elem)을 $('iframe, .lazyYT', $elem)로 변경했습니다.
function addOverlays($elem) {
$('iframe, video, .lazyYT', $elem).wrap("<div class='media-overlay-eligable'></div>")
이제 imgur 비디오가 다시 정상적으로 작동하며, 오버레이는 여전히 iFrame과 lazyYT에서 작동합니다.