Film eklenebilmesi için bir sayfa tasarladım. Kullanıcıdan Film Adı, Türü, Afişi, Tanıtım Videosu, Uzun Versiyonunu vs. istiyorum ve bunu veritabanına kaydediyorum. Filmi ekledikten sonra ana sayfada listeleniyor filmler yan yana olucak şekilde. Üzerine fare ile gelindiği zaman kısa tanıtım videosu oynatılıyor ama sekmeyi kapatıp tekrardan girdiğim zaman fare ile üzerine gelindiği zaman video oynatılmıyor. Yapayzekaya sordum sorunu tarayıcı önbelleğinden silindiğini söyledi. Bende dedim site yüklenmeden önce önbelleğe videoların hepsini yükliyimki videoları çekebilsin konumundan. Hala çözemedim sorunu yardımcı olabilir misiniz?
Videoları önbelleğe yükleme kısmı:
HomeController.cs :
public IActionResult Index()
{
var fimler = _ctx.filmler.ToList();
var model = fimler;
var videoKlasoruYolu = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/videos");
var videoDosyalari = Directory.GetFiles(videoKlasoruYolu)
.Select(Path.GetFileName)
.ToList();
ViewBag.VideoDosyalari = videoDosyalari;
int? userId = _httpContextAccessor.HttpContext.Session.GetInt32("UserID");
if (userId == null) {
return View(model);
}
var user = _ctx.kullanicilar.FirstOrDefault(u => u.Id == userId);
if (user == null) {
return NotFound();
}
ViewBag.Username = user.K_Ad;
return View(model);
}
Index.cshtml :
@section Scripts {
<script>
document.addEventListener("DOMContentLoaded", () => {
const videoDosyalari = [
@foreach (var video in ViewBag.VideoDosyalari)
{
<text>"@Url.Content($"~/videos/{video}")",</text>
}
];
console.log(videoDosyalari)
videoDosyalari.forEach((dosya) => {
const video = document.createElement("video");
video.src = dosya;
video.preload = "auto";
video.style.display = "none";
video.muted = true;
document.body.appendChild(video);
console.log(video)
});
});
</script>
}