C
C#14mo ago
Hyper

How can I play m3u8 playback with asp.net core?

?
118 Replies
canton7
canton714mo ago
That's an audio playlist file format? Presumably you're actually asking how to plan that audio file in the browser, rather than anything to do with asp.net?
DΣX
DΣX14mo ago
just recently heard from https://github.com/naudio/NAudio tmk they have mp3 decoding. but for the playlist format i dont know
GitHub
GitHub - naudio/NAudio: Audio and MIDI library for .NET
Audio and MIDI library for .NET. Contribute to naudio/NAudio development by creating an account on GitHub.
canton7
canton714mo ago
What are you actually trying to do?
Hyper
HyperOP14mo ago
no live video format or video
canton7
canton714mo ago
M3U
M3U (MP3 URL or Moving Picture Experts Group Audio Layer 3 Uniform Resource Locator in full) is a computer file format for a multimedia playlist. One common use of the M3U file format is creating a single-entry playlist file pointing to a stream on the Internet. The created file provides easy access to that stream and is often used in downloads...
Hyper
HyperOP14mo ago
m3u is playlist m3u8 is video file https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8
canton7
canton714mo ago
? The file you linked is a text file with the following contents:
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2149280,CODECS="mp4a.40.2,avc1.64001f",RESOLUTION=1280x720,NAME="720"
url_0/193039199_mp4_h264_aac_hd_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=246440,CODECS="mp4a.40.5,avc1.42000d",RESOLUTION=320x184,NAME="240"
url_2/193039199_mp4_h264_aac_ld_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=460560,CODECS="mp4a.40.5,avc1.420016",RESOLUTION=512x288,NAME="380"
url_4/193039199_mp4_h264_aac_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=836280,CODECS="mp4a.40.2,avc1.64001f",RESOLUTION=848x480,NAME="480"
url_6/193039199_mp4_h264_aac_hq_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=6221600,CODECS="mp4a.40.2,avc1.640028",RESOLUTION=1920x1080,NAME="1080"
url_8/193039199_mp4_h264_aac_fhd_7.m3u8
#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2149280,CODECS="mp4a.40.2,avc1.64001f",RESOLUTION=1280x720,NAME="720"
url_0/193039199_mp4_h264_aac_hd_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=246440,CODECS="mp4a.40.5,avc1.42000d",RESOLUTION=320x184,NAME="240"
url_2/193039199_mp4_h264_aac_ld_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=460560,CODECS="mp4a.40.5,avc1.420016",RESOLUTION=512x288,NAME="380"
url_4/193039199_mp4_h264_aac_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=836280,CODECS="mp4a.40.2,avc1.64001f",RESOLUTION=848x480,NAME="480"
url_6/193039199_mp4_h264_aac_hq_7.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=6221600,CODECS="mp4a.40.2,avc1.640028",RESOLUTION=1920x1080,NAME="1080"
url_8/193039199_mp4_h264_aac_fhd_7.m3u8
Wikipedia (which I just linked) says that m3u8 is a UTF-8 encoded m3u file
Buddy
Buddy14mo ago
Stack Overflow
Playing m3u8 Files with HTML Video Tag
I am trying to use HTTP Live Streaming (HLS) to stream video to my computers and my iPhone. After reading through the Apple 'HTTP Live Streaming Overview' as well as 'Best Practices for Creating and
Buddy
Buddy14mo ago
I assume the issue isn't at all about asp.net, but frontend (html)
TheRanger
TheRanger14mo ago
lets continue here @Hyper
Hyper
HyperOP14mo ago
okay
TheRanger
TheRanger14mo ago
is your database up?
Hyper
HyperOP14mo ago
yes
TheRanger
TheRanger14mo ago
Set up Entity framework to interact with your database
TheRanger
TheRanger14mo ago
Entity Framework
This article provides an overview of the Entity Framework.
Hyper
HyperOP14mo ago
@R its worked perfectly but navmenu does not appear and themes disappeared it's like a completely different page.
TheRanger
TheRanger14mo ago
? well its .cshtml, its seperated from blazor
Hyper
HyperOP14mo ago
must be interconnected how can I both link and use it as a .cshtml file @page "/" _host.cshtml
TheRanger
TheRanger14mo ago
i dont think u can, ur gonna have to go back to .razor, but i have no idea why the video player's js isnt running in .net 6.0
Hyper
HyperOP14mo ago
navmenu appears
TheRanger
TheRanger14mo ago
we might need to google how to inject a js script from jsruntime i disconnected anyway you said you put <script src="https://vjs.zencdn.net/8.10.0/video.min.js"></script> in _host.cshtml and it never worked, right? for blazor pages (.razor) it works for me
Hyper
HyperOP14mo ago
yes i need add <head> or <body> @R in host.cshtml
TheRanger
TheRanger14mo ago
do u have any other <script tags in that file?
Hyper
HyperOP14mo ago
there are script tags in both the head and body sections
TheRanger
TheRanger14mo ago
well, i figured a way try this
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
var scriptElement = await JsRuntime.InvokeAsync<IJSObjectReference>("import", "https://vjs.zencdn.net/8.10.0/video.min.js");
}
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
var scriptElement = await JsRuntime.InvokeAsync<IJSObjectReference>("import", "https://vjs.zencdn.net/8.10.0/video.min.js");
}
}
Hyper
HyperOP14mo ago
do I need to add it to the host.cshtml file again after adding it
TheRanger
TheRanger14mo ago
remove it from host.cshtml i noticed the js file has to be injected at a specific time, not in any time well, i guess i learned something
Hyper
HyperOP14mo ago
No description
TheRanger
TheRanger14mo ago
?
Hyper
HyperOP14mo ago
not working :(
TheRanger
TheRanger14mo ago
is that .razor?
Hyper
HyperOP14mo ago
yes
TheRanger
TheRanger14mo ago
can ui show ur .razor i honestly need to know how to create a blazor .net 6.0 project
Hyper
HyperOP14mo ago
@using Microsoft.JSInterop
@inject IJSRuntime JsRuntime

<div>
<h3>@MatchService.MatchTitle</h3>

@if (MatchService.IsActiveMatch)
{
<link href="https://vjs.zencdn.net/8.10.0/video-js.css" rel="stylesheet" />

<div>
<video id="my-video"
class="video-js"
controls
preload="auto"
width="1280"
height="720"
poster="valid-poster-url.jpg"
data-setup='{"fluid": true}'>

<source src="@MatchService.MatchSource" type="application/x-mpegURL" />

<p class="vjs-no-js">
JavaScript'i etkinleştirin ve HTML5 video desteği olan bir tarayıcıya geçin.
<a href="https://videojs.com/html5-video-support/" target="_blank">HTML5 video desteği</a>
</p>
</video>
</div>
}
else
{
<p>Şu anda aktif bir maç yoktur. Aktif maç olduğunu düşünüyorsanız geri bildirim kısmına yazınız.</p>
}
</div>

@code {
public async Task OnInitializedAsync()
{
await MatchService.LoadMatchSettings();
}

protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
var scriptElement = await JsRuntime.InvokeAsync<IJSObjectReference>("import", "https://vjs.zencdn.net/8.10.0/video.min.js");
}
}
}
@using Microsoft.JSInterop
@inject IJSRuntime JsRuntime

<div>
<h3>@MatchService.MatchTitle</h3>

@if (MatchService.IsActiveMatch)
{
<link href="https://vjs.zencdn.net/8.10.0/video-js.css" rel="stylesheet" />

<div>
<video id="my-video"
class="video-js"
controls
preload="auto"
width="1280"
height="720"
poster="valid-poster-url.jpg"
data-setup='{"fluid": true}'>

<source src="@MatchService.MatchSource" type="application/x-mpegURL" />

<p class="vjs-no-js">
JavaScript'i etkinleştirin ve HTML5 video desteği olan bir tarayıcıya geçin.
<a href="https://videojs.com/html5-video-support/" target="_blank">HTML5 video desteği</a>
</p>
</video>
</div>
}
else
{
<p>Şu anda aktif bir maç yoktur. Aktif maç olduğunu düşünüyorsanız geri bildirim kısmına yazınız.</p>
}
</div>

@code {
public async Task OnInitializedAsync()
{
await MatchService.LoadMatchSettings();
}

protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
var scriptElement = await JsRuntime.InvokeAsync<IJSObjectReference>("import", "https://vjs.zencdn.net/8.10.0/video.min.js");
}
}
}
TheRanger
TheRanger14mo ago
which video player is this?
Hyper
HyperOP14mo ago
video.js
TheRanger
TheRanger14mo ago
clappr? ah ah yes im blind, lol try if (firstRender == false) altho that didnt work for me, the opposite does any errors in ur browser's console window?
Hyper
HyperOP14mo ago
I'll check now
TheRanger
TheRanger14mo ago
wait try removing await MatchService.LoadMatchSettings(); and use a direct link i see it now i see the issue it loaded the script before await MatchService.LoadMatchSettings(); well, put the <script under
</video>
</div>
<script src="https://vjs.zencdn.net/8.10.0/video.min.js"></script>
</video>
</div>
<script src="https://vjs.zencdn.net/8.10.0/video.min.js"></script>
and try again
@using Microsoft.JSInterop
@inject IJSRuntime JsRuntime

<div>
<h3>@MatchService.MatchTitle</h3>

@if (MatchService.IsActiveMatch)
{
<link href="https://vjs.zencdn.net/8.10.0/video-js.css" rel="stylesheet" />

<div>
<video id="my-video"
class="video-js"
controls
preload="auto"
width="1280"
height="720"
poster="valid-poster-url.jpg"
data-setup='{"fluid": true}'>

<source src="@MatchService.MatchSource" type="application/x-mpegURL" />

<p class="vjs-no-js">
JavaScript'i etkinleştirin ve HTML5 video desteği olan bir tarayıcıya geçin.
<a href="https://videojs.com/html5-video-support/" target="_blank">HTML5 video desteği</a>
</p>
</video>
</div>
<script src="https://vjs.zencdn.net/8.10.0/video.min.js"></script>
}
else
{
<p>Şu anda aktif bir maç yoktur. Aktif maç olduğunu düşünüyorsanız geri bildirim kısmına yazınız.</p>
}
</div>

@code {
public async Task OnInitializedAsync()
{
await MatchService.LoadMatchSettings();
}
}
@using Microsoft.JSInterop
@inject IJSRuntime JsRuntime

<div>
<h3>@MatchService.MatchTitle</h3>

@if (MatchService.IsActiveMatch)
{
<link href="https://vjs.zencdn.net/8.10.0/video-js.css" rel="stylesheet" />

<div>
<video id="my-video"
class="video-js"
controls
preload="auto"
width="1280"
height="720"
poster="valid-poster-url.jpg"
data-setup='{"fluid": true}'>

<source src="@MatchService.MatchSource" type="application/x-mpegURL" />

<p class="vjs-no-js">
JavaScript'i etkinleştirin ve HTML5 video desteği olan bir tarayıcıya geçin.
<a href="https://videojs.com/html5-video-support/" target="_blank">HTML5 video desteği</a>
</p>
</video>
</div>
<script src="https://vjs.zencdn.net/8.10.0/video.min.js"></script>
}
else
{
<p>Şu anda aktif bir maç yoktur. Aktif maç olduğunu düşünüyorsanız geri bildirim kısmına yazınız.</p>
}
</div>

@code {
public async Task OnInitializedAsync()
{
await MatchService.LoadMatchSettings();
}
}
@Hyper this works for me
Hyper
HyperOP14mo ago
where is video-min.js
TheRanger
TheRanger14mo ago
above else by 2 lines
Hyper
HyperOP14mo ago
trying rn
Hyper
HyperOP14mo ago
No description
Hyper
HyperOP14mo ago
not working
TheRanger
TheRanger14mo ago
Honestly if that was a bug im glad the blazor team fixed it ok i found another way try this
@using Microsoft.JSInterop
@inject IJSRuntime JsRuntime

<div>
<h3>@MatchService.MatchTitle</h3>

@if (MatchService.IsActiveMatch)
{
<link href="https://vjs.zencdn.net/8.10.0/video-js.css" rel="stylesheet" />

<div>
<video id="my-video"
class="video-js"
controls
preload="auto"
width="1280"
height="720"
poster="valid-poster-url.jpg"
data-setup='{"fluid": true}'>

<source src="@MatchService.MatchSource" type="application/x-mpegURL" />

<p class="vjs-no-js">
JavaScript'i etkinleştirin ve HTML5 video desteği olan bir tarayıcıya geçin.
<a href="https://videojs.com/html5-video-support/" target="_blank">HTML5 video desteği</a>
</p>
</video>
</div>
}
else
{
<p>Şu anda aktif bir maç yoktur. Aktif maç olduğunu düşünüyorsanız geri bildirim kısmına yazınız.</p>
}
</div>

@code {
public async Task OnInitializedAsync()
{
await MatchService.LoadMatchSettings();
}

protected override async Task OnParametersSetAsync()
{
await JsRuntime.InvokeAsync<IJSObjectReference>("import", "https://vjs.zencdn.net/8.10.0/video.min.js");
}
}
@using Microsoft.JSInterop
@inject IJSRuntime JsRuntime

<div>
<h3>@MatchService.MatchTitle</h3>

@if (MatchService.IsActiveMatch)
{
<link href="https://vjs.zencdn.net/8.10.0/video-js.css" rel="stylesheet" />

<div>
<video id="my-video"
class="video-js"
controls
preload="auto"
width="1280"
height="720"
poster="valid-poster-url.jpg"
data-setup='{"fluid": true}'>

<source src="@MatchService.MatchSource" type="application/x-mpegURL" />

<p class="vjs-no-js">
JavaScript'i etkinleştirin ve HTML5 video desteği olan bir tarayıcıya geçin.
<a href="https://videojs.com/html5-video-support/" target="_blank">HTML5 video desteği</a>
</p>
</video>
</div>
}
else
{
<p>Şu anda aktif bir maç yoktur. Aktif maç olduğunu düşünüyorsanız geri bildirim kısmına yazınız.</p>
}
</div>

@code {
public async Task OnInitializedAsync()
{
await MatchService.LoadMatchSettings();
}

protected override async Task OnParametersSetAsync()
{
await JsRuntime.InvokeAsync<IJSObjectReference>("import", "https://vjs.zencdn.net/8.10.0/video.min.js");
}
}
ops forgot to remove <script @Hyper this works for me
Hyper
HyperOP14mo ago
trying Can only have one anonymous define call per script file,,
TheRanger
TheRanger14mo ago
what? did u remove the <script from _host.cshtml and in .razor?
Hyper
HyperOP14mo ago
yes
TheRanger
TheRanger14mo ago
could be conflicting with the clappr one
Hyper
HyperOP14mo ago
i dont have clappr
TheRanger
TheRanger14mo ago
where do u see this error?
Hyper
HyperOP14mo ago
what if I download these imported files myself and add them to the files console
TheRanger
TheRanger14mo ago
browser's console or C#'s console?
Hyper
HyperOP14mo ago
not browser console c#
TheRanger
TheRanger14mo ago
you could, but i dont think it matters
Hyper
HyperOP14mo ago
Microsoft.JSInterop.JSDisconnectedException: JavaScript interop calls cannot be issued at this time. This is because the circuit has disconnected and is being disposed.
TheRanger
TheRanger14mo ago
ok i suspect LoadMatchSettings(); is doing some weird stuff ur invoking jsruntime methods in that method, right? what if you put the link directly?
Hyper
HyperOP14mo ago
nothing changes
Hyper
HyperOP14mo ago
No description
TheRanger
TheRanger14mo ago
link of ur stream i mean
Hyper
HyperOP14mo ago
importing but video not working .
TheRanger
TheRanger14mo ago
yeah it needs to be imported after the video player initializes whats that, i thought we were using OnParametersSetAsync
Hyper
HyperOP14mo ago
the page does not open and the error I gave above is written .
TheRanger
TheRanger14mo ago
OnAfterRenderAsync gets called before your match loads so it wont work i wonder why
Hyper
HyperOP14mo ago
protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { await LoadVideoJs(); } } private async Task LoadVideoJs() { await JsRuntime.InvokeVoidAsync("eval", "var script = document.createElement('script'); script.src = 'https://vjs.zencdn.net/8.10.0/video.min.js'; document.head.appendChild(script);"); }
TheRanger
TheRanger14mo ago
bool firstTime = true;
protected override async Task OnParametersSetAsync()
{
if (firstTime)
{
firstTime = false;
await JsRuntime.InvokeAsync<IJSObjectReference>("import", "https://vjs.zencdn.net/8.10.0/video.min.js");
}
}
bool firstTime = true;
protected override async Task OnParametersSetAsync()
{
if (firstTime)
{
firstTime = false;
await JsRuntime.InvokeAsync<IJSObjectReference>("import", "https://vjs.zencdn.net/8.10.0/video.min.js");
}
}
again dont use OnAfterRenderAsync wait aminute
Hyper
HyperOP14mo ago
not working
TheRanger
TheRanger14mo ago
shouldnt
public async Task OnInitializedAsync()
{
await MatchService.LoadMatchSettings();
}
public async Task OnInitializedAsync()
{
await MatchService.LoadMatchSettings();
}
be
protected override async Task OnInitializedAsync()
{
await MatchService.LoadMatchSettings();
}
protected override async Task OnInitializedAsync()
{
await MatchService.LoadMatchSettings();
}
?
Hyper
HyperOP14mo ago
When I converted it to cshtml file, I made onget, I forgot to fix it back
TheRanger
TheRanger14mo ago
yeah it wont get called u have to change it to that
Hyper
HyperOP14mo ago
not working
TheRanger
TheRanger14mo ago
show ur .razor in case, try removing the firstTime parts did you even recompile your project?
Hyper
HyperOP14mo ago
no
TheRanger
TheRanger14mo ago
you should,
Hyper
HyperOP14mo ago
this code ? recpompile
TheRanger
TheRanger14mo ago
try if you dont recompile ur project it will always run an older version of ur project
Hyper
HyperOP14mo ago
recompiled starting not working
TheRanger
TheRanger14mo ago
i gave you everything that worked for me, i can really suspect it might be the old version of blazor we always update our projects to a newer version of .net, i dont see why you cant
Hyper
HyperOP14mo ago
@R Can I integrate NavMenu.razor file into cshtml file?
TheRanger
TheRanger14mo ago
You can't, blazor and razor pages cannot be integrated together razor pages are just html generated by asp while blazor works differently,
Hyper
HyperOP14mo ago
how to update blazor version
TheRanger
TheRanger14mo ago
im wondering why are u deleting your code
Hyper
HyperOP14mo ago
which code
TheRanger
TheRanger14mo ago
here for example, says original message was deletd anyway you can go to your project's .csproj change <TargetFramework>net6.0</TargetFramework> to <TargetFramework>net8.0</TargetFramework> some code might get broken, but it can get fixed
Hyper
HyperOP14mo ago
if a large part of it broken, not some of it.
TheRanger
TheRanger14mo ago
i fixed some of my code when i updated to 8.0
Hyper
HyperOP14mo ago
it doesn't work, most of them are incompatible.
TheRanger
TheRanger14mo ago
well, i have something you might try
const video = document.getElementById('my-video');
const player = videojs(video, {
controls: true,
autoplay: false,
preload: 'auto'
// add more options as needed
});
const video = document.getElementById('my-video');
const player = videojs(video, {
controls: true,
autoplay: false,
preload: 'auto'
// add more options as needed
});
Hyper
HyperOP14mo ago
host.cshtml so navmenu appears in /
TheRanger
TheRanger14mo ago
invoke this js code by clicking a button in ur blazor page
Hyper
HyperOP14mo ago
tried
TheRanger
TheRanger14mo ago
with this? are u sure ur blazor page didnt crash?
Hyper
HyperOP14mo ago
yes video is not loading yes
TheRanger
TheRanger14mo ago
if you click a button say it pops up a message, does it work?
Hyper
HyperOP14mo ago
cshtml
No description
TheRanger
TheRanger14mo ago
forget cshtml we r talking about .razor now
Hyper
HyperOP14mo ago
the loading icon appears but does not load
TheRanger
TheRanger14mo ago
no i mean create a js file in wwwroot folder put this
function EmbedVideoJS() {
const video = document.getElementById('my-video');
const player = videojs(video, {
controls: true,
autoplay: false,
preload: 'auto'
// add more options as needed
});
};
function EmbedVideoJS() {
const video = document.getElementById('my-video');
const player = videojs(video, {
controls: true,
autoplay: false,
preload: 'auto'
// add more options as needed
});
};
Hyper
HyperOP14mo ago
import?
TheRanger
TheRanger14mo ago
then in ur _Host.cstml put this
<script src="https://vjs.zencdn.net/8.10.0/video.min.js"></script>
<script src="locationofyourjsfile.js"></script>
<script src="https://vjs.zencdn.net/8.10.0/video.min.js"></script>
<script src="locationofyourjsfile.js"></script>
then in ur .razor
<button @onclick="Click">Test</button>
@code {
async Task Click()
{
await JsRuntime.InvokeVoidAsync("EmbedVideoJS");
}
}
<button @onclick="Click">Test</button>
@code {
async Task Click()
{
await JsRuntime.InvokeVoidAsync("EmbedVideoJS");
}
}
Hyper
HyperOP14mo ago
where <link href="https://vjs.zencdn.net/8.10.0/video-js.css" rel="stylesheet" /> <div> <video id="my-video" class="video-js" controls preload="auto" width="1280" height="720" poster="valid-poster-url.jpg" data-setup='{"fluid": true}'> <source src="@MatchService.MatchSource" type="application/x-mpegURL" /> <p class="vjs-no-js"> JavaScript'i etkinleştirin ve HTML5 video desteği olan bir tarayıcıya geçin. <a href="https://videojs.com/html5-video-support/" target="_blank">HTML5 video desteği</a> </p> </video> </div>
TheRanger
TheRanger14mo ago
you never added a button in blazor page before?
Hyper
HyperOP14mo ago
not in that sense, how will this button look like, I don't want to add an additional button to start the video
TheRanger
TheRanger14mo ago
its for testing now just for tests the button wont start the video, it will embed the video player
Hyper
HyperOP14mo ago
starting omg @R finally
TheRanger
TheRanger14mo ago
i remember i used to do that back in .net 6.0 days but now i dont need, .net 8.0 fixed alot of stuff
Hyper
HyperOP14mo ago
so how do we remove this button and make it automatically imported
TheRanger
TheRanger14mo ago
cmon u already made it working now ur being greedy, lol i dont really know, try adding
<script>
EmbedVideoJS()
</script>
<script>
EmbedVideoJS()
</script>
under </video>
Hyper
HyperOP14mo ago
did not work, I wonder if I add my initialisation design with css to the button
TheRanger
TheRanger14mo ago
it wont ig, old blazor cant run <script tags from here
Hyper
HyperOP14mo ago
width="1280" height="720" ? what do you think is the best resolution setting
TheRanger
TheRanger14mo ago
that depends on what you prefer try this
function EmbedVideoJS() {
const video = document.getElementById('my-video');
if (video !== null)
{
const player = videojs(video, {
controls: true,
autoplay: false,
preload: 'auto'
// add more options as needed
});
}
};
function EmbedVideoJS() {
const video = document.getElementById('my-video');
if (video !== null)
{
const player = videojs(video, {
controls: true,
autoplay: false,
preload: 'auto'
// add more options as needed
});
}
};
with
protected override async Task OnAfterRenderAsync(bool firstRender)
{
await JsRuntime.InvokeVoidAsync("EmbedVideoJS");
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
await JsRuntime.InvokeVoidAsync("EmbedVideoJS");
}
Hyper
HyperOP14mo ago
No amount of thanks is enough tysm
TheRanger
TheRanger14mo ago
it worked?
Hyper
HyperOP14mo ago
yes perfectly working data does not broken even on reboot i fixed it
TheRanger
TheRanger14mo ago
sounds like you used database, or set up the value of the property in the code
Hyper
HyperOP14mo ago
yes poster.png hmm poster="valid-poster-url.jpg" so can I integrate clappr with the same management :) @R
TheRanger
TheRanger14mo ago
sure

Did you find this page helpful?