And*_*eld 3 reveal.js xaringan
我正在使用 Xaringan 编写演示文稿。我想嵌入视频,以便当我转换到包含视频的幻灯片时,它会自动全屏播放。(即,我不想必须单击视频才能播放)。
我可以使用revealjs实现我想要的:
## {data-background-video="my_video.mp4"}
Run Code Online (Sandbox Code Playgroud)
但我花了大约 30 个小时在 Xaringan 中编写演示文稿,包括一些自定义 css 样式(我是一个十足的 css 新手),所以我不想转换为 Revealjs (特别是因为我除了测试以上)。
Xaringan 中有等效的吗?鉴于它是基于 Revealjs,我认为这是可能的,但尽管在互联网上花了很多时间,我还是不知道如何实现。
或者,有没有办法通过按下键盘来激活非全屏视频。例如,播放视频的增量步骤:
这是行不通的。它在按键时播放音频,但不播放视频:
---
--
<video width="100%" height="100%" controls>
<source src="media/my_video.mp4" type="video/mp4">
</video>
---
Run Code Online (Sandbox Code Playgroud)
这会在演示文稿开始时播放音频(不是我想要的幻灯片),并且没有视频(可能是因为我在第一张幻灯片上设置了背景图像):
<video width="100%" height="100%" autoplay>
<source src="media/my_video.mp4" type="video/mp4">
</video>
Run Code Online (Sandbox Code Playgroud)
感谢@pat-s 和他链接的页面,我可以完成这项工作。如果它对其他人有帮助,这里有一个工作的最小示例,可以在幻灯片转换时自动播放音频和视频(全屏)。
R Markdown 是:
title: "Video Example"
author: "Andy Field"
output:
xaringan::moon_reader:
css: ["default", "my_styles.css"]
includes:
after_body: "afterInit.html"
---
# Minimal example of autoplaying audio and fullscreen video
## Andy Field
```{r setup, include=FALSE}
options(htmltools.dir.version = FALSE)
```
---
class: inverse
background-image: url("http://www.metalmusicarchives.com/images/covers/dio-killing-the-dragon-20160817062111.jpg")
background-size: cover
<audio controls>
<source src="http://www.discoveringstatistics.com/repository/misc/dio_killing_the_dragon.mp3" type="audio/mpeg">
<source src="http://www.discoveringstatistics.com/repository/misc/dio_killing_the_dragon.ogg" type="audio/ogg"/>
</audio>
.center[Here's the audio.
It is a song by the band Dio.
Like many of their songs, it involves a dragon.
Next up, video.]
---
layout: false
<video width="100%" height="100%" controls id="my_video">
<source src="http://www.discoveringstatistics.com/repository/misc/shrek_burp.mp4" type="video/mp4">
</video>
Run Code Online (Sandbox Code Playgroud)
请注意,YAML 包含对名为“afterInit.html”的文件的引用,该文件(在本例中)与 markdown 存储在同一目录中。该文件包含以下内容:
<script type='text/javascript'>
var slideElements
function getElementForSlide(slide) {
slideElements = slideElements || document.querySelectorAll('.remark-slide')
return slideElements[slide.getSlideIndex()]
}
slideshow.on('showSlide', function (slide) {
Array.from(getElementForSlide(slide).querySelectorAll('video, audio')).forEach(function (vid) {
vid.loop = false
vid.currentTime = 0
vid.play()
})
})
slideshow.on('hideSlide', function (slide) {
Array.from(getElementForSlide(slide).querySelectorAll('video, audio')).forEach(function (vid) {
vid.pause()
})
})
</script>
Run Code Online (Sandbox Code Playgroud)
YAML 还调用一个名为“my_styles”的 css 文件(也与 markdown 文件位于同一目录中),该文件用于使视频全屏播放。我想你可以将其直接包含在 markdown 中的 css 块中,但我想将其保留在外部。该文件包含:
#my_video {
position: fixed;
right: 0;
bottom: 0;
min-width: 100%;
min-height: 100%;
width: 100%;
}
Run Code Online (Sandbox Code Playgroud)
要使其正常工作,请注意,当我在 Markdown 中引用视频时,我会包含id="my_video".
当演示文稿在 Firefox 中全屏显示时,这对我有用。
| 归档时间: |
|
| 查看次数: |
1144 次 |
| 最近记录: |