public async Task <BlobStream> CreateBlobStreamAsync(string fileName, MediaRecorderOptions options) { MediaRecorderBlobFileStream mediaRecorderBlobFileStream = new(fileName, options, _jsRuntime); await mediaRecorderBlobFileStream.Initialization; return(mediaRecorderBlobFileStream); }
public async Task <Stream> CreateStreamAsync(string fileName, MediaRecorderOptions options) { MediaRecorderFileStream mediaRecorderFileStream = new(fileName, options, _streamSaver); await mediaRecorderFileStream.Initialization; return(mediaRecorderFileStream); }
public MediaRecorderFileStream(string fileName, MediaRecorderOptions mediaRecorderOptions, IStreamSaver streamSaver) { _fileName = fileName; _mediaRecorderOptions = mediaRecorderOptions; _streamSaver = streamSaver; Initialization = InitAsync(); }
private MediaRecorder(IJSRuntime jsRuntime, JsObjectRef jsObjectRef, IMediaStream stream, MediaRecorderOptions options) : base(jsRuntime, jsObjectRef) { AddNativeEventListenerForObjectRef("dataavailable", (s, e) => OnDataAvailable?.Invoke(s, e), BlobEvent.Create); AddNativeEventListenerForObjectRef("error", (s, e) => OnError?.Invoke(s, e), DOMException.Create); AddNativeEventListener("pause", (s, e) => OnPause?.Invoke(s, e)); AddNativeEventListener("resume", (s, e) => OnResume?.Invoke(s, e)); AddNativeEventListener("start", (s, e) => OnStart?.Invoke(s, e)); AddNativeEventListener("stop", (s, e) => OnStop?.Invoke(s, e)); }
public MediaRecorderBlobFileStream(string fileName, MediaRecorderOptions mediaRecorderOptions, IJSRuntime jsRuntime) { _fileName = fileName; _mediaRecorderOptions = mediaRecorderOptions; _jsRuntime = jsRuntime; _streamSaverJsObjectRef = jsRuntime.GetJsPropertyObjectRef("window", "streamSaver"); _writeableStreamJsObjectRef = jsRuntime.CallJsMethod <JsObjectRef>( _streamSaverJsObjectRef, "createWriteStream", fileName); _writerJsObjectRef = jsRuntime.CallJsMethod <JsObjectRef>(_writeableStreamJsObjectRef, "getWriter"); Initialization = InitAsync(); }
public IMediaRecorder MediaRecorder(IMediaStream stream, MediaRecorderOptions options = null) { throw new NotImplementedException(); }
public Task <Stream> CreateAsync(string fileName, MediaRecorderOptions options) { throw new NotImplementedException(); }
//// TODO: REFACTOR WHOLE BLAZOR API BY USING System.Private.Runtime.InteropServices.JavaScript and use HostObject. ////public IMediaRecorder MediaRecorder(IMediaStream stream, MediaRecorderOptions options = null) ////{ ////return new MediaRecorder(stream, options); ////} /// public IMediaRecorder MediaRecorder(IMediaStream stream, MediaRecorderOptions options = null) => Api.MediaRecorder.Create(JsRuntime, stream, options);
//// TODO: REFACTOR WHOLE BLAZOR API BY USING System.Private.Runtime.InteropServices.JavaScript and use HostObject. //private readonly JSObject _jsObjectMediaRecorder; ////private readonly IMediaStream _stream; ////private readonly MediaRecorderOptions _options; //public MediaRecorder(IMediaStream stream, MediaRecorderOptions options) //{ //_stream = stream; //_options = options; //_jsObjectMediaRecorder = new HostObject("MediaRecorder"); //} public static IMediaRecorder Create(IJSRuntime jsRuntime, IMediaStream stream, MediaRecorderOptions options) { var jsObjectRef = jsRuntime.CreateJsObject("window", "MediaRecorder", stream.NativeObject, options); return(new MediaRecorder(jsRuntime, jsObjectRef, stream, options)); }