C# 流媒体服务器客户端封装

该博客介绍了如何使用C#封装流媒体服务器客户端,包括初始化库、创建播放器、打开URL、播放、暂停、停止、获取当前时间、改变播放速率等功能的详细步骤和方法调用。通过示例代码展示了客户端与服务器交互的关键过程。
摘要由CSDN通过智能技术生成

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

namespace HIK
{

    abstract class IHikClientAdviseSink
    {

        /******************************************************************
        在Setup时被调用,获取总的播放长度.nLength为总的播放长度,以1/64秒为单位
        */
        public abstract int OnPosLength(int nLength);

        /******************************************************************
         在Setup后被调用,表示URL已经被成功打开,sucess为1表示成功,0表示失败
        */
        public abstract int OnPresentationOpened(int success);

        /************************************************************************
        在Player被停止销毁后调用
        */
        public abstract int OnPresentationClosed();

        /************************************************************************
        未使用
        */
        public abstract int OnPreSeek(uint uOldTime, uint uNewTime);

        /************************************************************************
        未使用
        */
        public abstract int OnPostSeek(uint uOldTime, uint uNewTime);

        /************************************************************************
        未使用
        */
        public abstract int OnStop();

        /************************************************************************
        在Pause时被调用,uTime目前都是0
        */
        public abstract int OnPause(uint uTime);

        /************************************************************************
         在开始播放时调用,uTime目前都是0
         */
        public abstract int OnBegin(uint uTime);

        /************************************************************************
        在随机播放时调用,uTime目前都是0
        */
        public abstract int OnRandomBegin(uint uTime);

        /************************************************************************
         在Setup前调用,pszHost表示正在连接的服务器
         */
        public abstract int OnContacting(string pszHost);

        /************************************************************************
        在服务器端返回出错信息是调用, pError中为出错信息内容
        */
        public abstract int OnPutErrorMsg(string pError);

        /************************************************************************
        未使用
         */
        public abstract int OnBuffering(uint uFlag, uint uPercentComplete);

        public abstract int OnChangeRate(int flag);

        public abstract int OnDisconnect();

    };


    public delegate int pDataRec(int sid, int iusrdata, int idatatype, string pdata, int ilen);

    public delegate int pMsgBack(int sid, int opt, int param1, int param2);

 

    class hkClient
    {

        [DllImport("client.dll")]
        public static extern int HIKS_CreatePlayer(IHikClientAdviseSink pSink, IntPtr pWndSiteHandle, pDataRec pRecFunc, pMsgBack pMsgFunc, int TransMethod);

        [DllImport("client.dll")]
        public static extern int InitStreamClientLib();
        [DllImport("client.dll")]
        public static extern int FiniStreamClientLib();
        [DllImport("client.dll")]
        public static extern int HIKS_OpenURL(int hSession, string pszURL, int iusrdata);
        [DllImport("client.dll")]
        public static extern int HIKS_Play(int hSession);
        [DllImport("client.dll")]
        public static extern int HIKS_RandomPlay(int hSession, int timepos);
        [DllImport("client.dll")]
        public static extern int HIKS_Pause(int hSession);
        [DllImport("client.dll")]
        public static extern int HIKS_Resume(int hSession);
        [DllImport("client.dll")]
 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值