javascript - Swiper.js 延迟加载实现与 .m3u8 视频
问题描述
我正在尝试使用 ReactPlayer 实现 Swiper 延迟加载。问题是我m3u8
从后端接收格式。对于像我这样的常见视频格式,mp4
我会使用<video>
标签,并且实现将是显而易见的。但就我而言,我需要一个m3u8
格式播放器,这给我带来了问题。
有没有办法通过使用 ReactPlayer、任何其他播放器甚至没有播放器来实现它?
请不要严格评判我。
我将不胜感激任何帮助或建议。
import "./styles.css";
import { Swiper, SwiperSlide } from "swiper/react";
import SwiperCore, { Lazy } from "swiper";
import ReactPlayer from "react-player";
import { v1 } from "uuid";
import "swiper/swiper.min.css";
export default function App() {
const settings = {
lazy: true,
};
SwiperCore.use([Lazy]);
const urls = [
{
id: v1(),
url:
"https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8",
poster: "https://via.placeholder.com/150/FFFF00/000000",
},
{
id: v1(),
url:
"https://multiplatform-f.akamaihd.net/i/multi/will/bunny/big_buck_bunny_,640x360_400,640x360_700,640x360_1000,950x540_1500,.f4v.csmil/master.m3u8",
poster: "https://via.placeholder.com/150/FFFF00/000000",
},
{
id: v1(),
url:
"https://multiplatform-f.akamaihd.net/i/multi/april11/sintel/sintel-hd_,512x288_450_b,640x360_700_b,768x432_1000_b,1024x576_1400_m,.mp4.csmil/master.m3u8",
poster: "https://via.placeholder.com/150/FFFF00/000000",
},
];
return (
<div className="App">
<Swiper {...settings}>
{urls.map(({ id, url, poster }) => (
<SwiperSlide key={id}>
<ReactPlayer
controls={true}
url={url}
config={{
attributes: {
poster,
className: "swiper-lazy",
"data-src": url,
},
}}
width="100%"
height="300px"
/>
</SwiperSlide>
))}
</Swiper>
</div>
);
}
这是我的代码框。Swiper 延迟加载。
解决方案
推荐阅读
- oracle - PL SQL中需要同时在不同会话中运行的不同SP写入单个日志文件
- python - python 编程出错 xml.etree.ElementTree.ParseError: not well-formed
- python - Odoo 电子邮件模板呈现错误
- sql-server - SQL Server 2014 按半小时间隔聚合事件持续时间
- jquery - 如何在 Web 应用程序 chrome.18n 中设计语言切换器
- python - 使用 pyserial 以 64 字节为增量在循环中发送起始地址
- python - json 文件模式/对象以触发模式以加载数据帧
- java - 为什么 Collections.min(Arrays.asList(new Base(), new Base())) 给出一个奇怪的编译错误(Eclipse)?
- javascript - 使用 webpack 构建的旧 Backbone 和 Marionette
- node.js - 在 Axios/Node 中调用正确的 get 路由