调用Nero SDK 刻录光盘(含代码)

        项目中有多光驱刻录的需求,但在一个进程里同时启动多个刻录任务,进程经常报异常,于是把刻录部分单独做了个控制台程序,每个光驱刻录就启动一个进程去执行刻录任务,这样就算刻录进程出错也不会影响到父进程。

        以下是Nero 刻碟的类,SDK采用NeroSDK-1.08版本,调用NeroCOM组件。调用时必须引用Interop.NEROLib.dll 和 Interop.NeroVisionAPI.dll 两个dll。

public class NeroBurn
    {
        #region 属性
        private  NeroDrive m_neroDerive;
        private  Nero m_nero;
        private bool m_aborted;
        private string m_burnPath;
        private bool m_isDoneBurn;
        private int m_returnCode;//0:失败;1:成功;-1:未知
        private string m_discvol;
        
        //nero 委托
        private _INeroDriveEvents_OnDoneBurnEventHandler m_evOnDoneBurn;
        private  _INeroDriveEvents_OnAddLogLineEventHandler m_evOnAddLogLine;
        private _INeroEvents_OnWaitCDEventHandler m_evOnWaitCD;
        private _INeroDriveEvents_OnAbortedEventHandler m_evOnAborted;
        private _INeroDriveEvents_OnProgressEventHandler m_evOnProgress;
        private _INeroEvents_OnWaitCDDoneEventHandler m_evOnWaitCDDone;
        
        #endregion 

        #region 构造函数

        /// 
        /// 构造函数
        /// 
        /// 盘符
        /// 待刻录的文件路径
        /// 盘的卷标
        public NeroBurn(string driverletter,string burnpath,string discvol)
        {
            m_burnPath = burnpath;
            m_nero = new NeroClass();
            m_neroDerive = allocDevice(driverletter);
            m_aborted = false;
            m_isDoneBurn = false;
            m_discvol = discvol;
        }

        #endregion 
        
        #region Nero事件处理

        /// 
        /// 发起刻录事件
        /// 
        /// 
        private  void SubscribeToEvents(bool bSubscribe)
        {
            if (bSubscribe)
            {
                m_evOnAddLogLine = new _INeroDriveEvents_OnAddLogLineEventHandler(m_drive_OnAddLogLine);
                m_neroDerive.OnAddLogLine += m_evOnAddLogLine;
                m_evOnWaitCD = new _INeroEvents_OnWaitCDEventHandler(m_nero_OnWaitCD);
                m_nero.OnWaitCD += m_evOnWaitCD;
                m_evOnDoneBurn = new _INeroDriveEvents_OnDoneBurnEventHandler(m_drive_OnDoneBurn);
                m_neroDerive.OnDoneBurn += m_evOnDoneBurn;
                m_evOnWaitCDDone = new _INeroEvents_OnWaitCDDoneEventHandler(m_nero_OnWaitCDDone);
                m_nero.OnWaitCD
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
(www.softgogo.com)该光盘SDK简单易用,功能强大稳定,包括了DLL和OCX控件调用方式。专门用于数据、音乐、VCD、SVCD、DVD影碟,支持实时、实时DVD视频光盘像、加密等强大功能。支持现在市场上的所有光盘,包括CD,DVD,蓝光盘片,支持所有光盘的数据追加,支持多台同时,并且支持所有类型的机。在Demo演示版本中提供了所有功能测试,您可以直接试用。 该SDK的售价包了授权费用和使用费用,是一次性价格,没有其他任何的收费。使用该SDK发布的产品没有任何时间和数量的限制,无开发人员使用数量限制。 本SDK是标准的Windows动态连接库文件,可独立完成所有功能,底层不依赖其它的任何第3方的环境或者文件。能够轻松的被其它windows应用程序及开发工具调用,包括VB、VC、DELPHI、C#等。提供的用户接口友好且使用简单。本SDK编码质量优良,操作速度快,不会占用及耗费多余的临时硬盘空间,所需要的数据操作全部在内存中完成,已经通过了以上提及的所有CD及DVD盘片测试,并且经过了大量的各种类型的机的检验测试。 本SDK提供的主要接口函数功能有: ·得到盘片信息 ·搽除可搽写盘片 ·设置并得到当前盘片的读写速度 ·弹进弹出光盘托盘 ·得到光驱设备的型号及附带的产品信息 ·得到当前设备支持的写类型 ·镜像文件(*.ISO及其他标准格式的镜像文件)到光盘 ·文件及文件夹到光盘 ·追加文件及文件夹到光盘(Multisession disc) ·VCD/SVCD光盘 ·DVD影碟 ·得到当前进度 ·得到当前正在的文件名 ·得到当前过程中的错误信息 ·停止进程。 ·文件及文件夹到镜像文件(*.iso) ·mp3或者wave文件到音乐光盘 ·得到mp3或者wave文件的文件信息 ·保存音乐光盘中的Audio Track为mp3或者wave文件 ·得到光盘的Track信息 ·复制CD/DVD盘片 ·支持ISO和UDF格式的数据光盘 ·自运行光盘(AutoRun) ·实时 ·实时DVD光盘像 ·加密

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值