利用VS C# 实现串口控制视频的播放 use VLC

本文介绍了如何在VS2013 C#环境下,通过串口通信控制VLC播放器播放视频。实现功能包括:根据串口接收到的指令播放特定视频,如接收到'1'播放视频1,10秒内未收到'1'则自动播放视频2,同时在播放视频2时能响应'1'切换回视频1。项目依赖.NET 2.0框架和VLC2.2.1.0,并提供了VlcPlayer.cs类代码及作者联系方式。
摘要由CSDN通过智能技术生成

开发环境:VS2013, C#, VLC播放器
实现的功能:
1、利用串口通信来控制视频的播放,
2、接收到“1”时播放第一个视频,若10s内没有接收到”1”,自动播放第二个视频,期间忽略接受到的0;
3、若正在播放第二个视频,接收到“1”,立马播放视频1,

最终实现的图形界面

整个功能的实现主要就用到了2个控件和1个VLC类,控件SerialPort和timer&&类VlcPlayer.cs
重要提示:项目必须使用.NET 2.0,并且电脑需要安装VLC播放器,然后到安装目录拷贝如图所示文件:我的是VLC2.2.1.0
这里写图片描述

VlcPlayer.cs类是从网上找的,具体在哪里找的记不清了,代码如下:
以下保证可用:
本人邮箱:liangzuoxiang@126.com
QQ:858010378
有问题欢迎交流。。

using System;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Security;
using System.Collections.Generic;
using System.Text;

namespace serial_audio // **这里把命名空间的名字改成和你项目里的一样就可以了**
{
    class VlcPlayer
    {
        private IntPtr libvlc_instance_;
        private IntPtr libvlc_media_player_;

        private double duration_;

        public VlcPlayer(string pluginPath)
        {
            string plugin_arg = "--plugin-path=" + pluginPath;
            string[] arguments = { "-I", "dummy", "--ignore-config", "--no-video-title", plugin_arg };
            libvlc_instance_ = LibVlcAPI.libvlc_new(arguments);

            libvlc_media_player_ = LibVlcAPI.libvlc_media_player_new(libvlc_instance_);
        }

        public void SetRenderWindow(int wndHandle)
        {
            if (libvlc_instance_ != IntPtr.Zero && wndHandle != 0)
            {
                LibVlcAPI.libvlc_media_player_set_hwnd(libvlc_media_player_, wndHandle);
            }
        }

        public void PlayFile(string filePath)
        {
            IntPtr libvlc_media = LibVlcAPI.libvlc_media_new_path(libvlc_instance_, filePath);
            if (libvlc_media != IntPtr.Zero)
            {
                LibVlcAPI.libvlc_media_parse(libvlc_media);
                duration_ = LibVlcAPI.libvlc_media_get_duration(libvlc_media) / 1000.0;

                LibVlcAPI.libvlc_media_player_set_media(libvlc_media_player_, libvlc_media);
                LibVlcAPI.libvlc_media_release(libvlc_media);

                LibVlcAPI.libvlc_media_player_play(libvlc_media_player_);
            }
        }

        public void Pause()
        {
            if (libvlc_media_player_ != IntPtr.Zero)
            {
                LibVlcAPI.libvlc_media_player_pause(libvlc_media_player_);
            }
        }

        public void Stop()
        {
            if (libvlc_media_player_ != IntPtr.Zero)
            {
                LibVlcAPI.libvlc_media_player_stop(libvlc_media_player_);
            }
        }

        public double GetPlayTime()
        {
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值