示例#1
0
 public void AddOption()
 {
     using var stream = new FileStream(Path.GetTempFileName(), FileMode.OpenOrCreate);
     using var input  = new StreamMediaInput(stream);
     using var media  = new Media(_libVLC, input);
     media.AddOption("-sout-all");
 }
示例#2
0
        public async Task CreateMultipleMediaFromStreamPlay()
        {
            var libVLC1 = new LibVLC("--no-audio", "--no-video");
            var libVLC2 = new LibVLC("--no-audio", "--no-video");

            var mp1 = new MediaPlayer(libVLC1);
            var mp2 = new MediaPlayer(libVLC2);

            using var s1 = await GetStreamFromUrl("http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4");

            using var s2 = await GetStreamFromUrl("https://streams.videolan.org/streams/mp3/05-Mr.%20Zebra.mp3");

            using var i1 = new StreamMediaInput(s1);
            using var i2 = new StreamMediaInput(s2);

            var m1 = new Media(libVLC1, i1);
            var m2 = new Media(libVLC2, i2);

            mp1.Play(m1);
            m1.Dispose();
            mp2.Play(m2);
            m2.Dispose();

            await Task.Delay(10000);
        }
示例#3
0
 public void CreateMediaFromStream()
 {
     using var stream = new FileStream(Path.GetTempFileName(), FileMode.OpenOrCreate);
     using var input  = new StreamMediaInput(stream);
     using var media  = new Media(_libVLC, input);
     Assert.AreNotEqual(IntPtr.Zero, media.NativeReference);
 }
示例#4
0
 public void CreateMediaFromFileStream()
 {
     using var stream = new FileStream(RealMp3Path, FileMode.Open, FileAccess.Read, FileShare.Read);
     using var input  = new StreamMediaInput(stream);
     using var media  = new Media(_libVLC, input);
     Assert.AreNotEqual(IntPtr.Zero, media.NativeReference);
 }
示例#5
0
        public void LoadMedia(StreamType type, string file, float startPosition, float stopPosition)
        {
            this.startPosition = startPosition;
            this.stopPosition  = stopPosition;

            aspectRationSet = false;

            if (type == StreamType.LocalFileStream)
            {
                streamMediaInput?.Dispose();
                currStream?.Dispose();
                currStream       = localFileStreamClient.OpenStream(file);
                streamMediaInput = new StreamMediaInput(currStream);

                using var media = new Media(library, streamMediaInput);

                mediaPlayer.Media = media;
            }
            else
            {
                using var media   = new Media(library, file);
                mediaPlayer.Media = media;
            }

            PlayUntillBuffered();
            mediaPlayer.Position = startPosition;
        }
示例#6
0
        public void Duplicate()
        {
            using var stream = new FileStream(Path.GetTempFileName(), FileMode.OpenOrCreate);
            using var input  = new StreamMediaInput(stream);
            using var media  = new Media(_libVLC, input);
            var duplicate = media.Duplicate();

            Assert.AreNotEqual(duplicate.NativeReference, media.NativeReference);
        }
示例#7
0
        public async Task CreateMediaFromStreamMultiplePlay()
        {
            using var mp     = new MediaPlayer(_libVLC);
            using var stream = await GetStreamFromUrl("http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4");

            using var mediaInput = new StreamMediaInput(stream);
            using var media      = new Media(_libVLC, mediaInput);
            mp.Play(media);

            await Task.Delay(1000);

            mp.SetTime(60000);

            await Task.Delay(10000); // end reached, rewind stream

            mp.Play(media);
        }
示例#8
0
        public async Task CreateMediaFromStreamMultiplePlay()
        {
            using var mp     = new MediaPlayer(_libVLC);
            using var stream = await GetStreamFromUrl(RemoteVideoStream);

            using var mediaInput = new StreamMediaInput(stream);
            using var media      = new Media(_libVLC, mediaInput);
            mp.Play(media);

            await Task.Delay(1000);

            mp.SetTime(60000);

            await Task.Delay(10000); // end reached, rewind stream

            mp.Play(media);
        }