Exemplo n.º 1
0
 public void Pause(bool pause = true)
 {
     if (this.Status == EM_PlayStatus.Playing && pause)
     {
         this.Status = EM_PlayStatus.Paused;
         PInvoke.ZLMediaKitMethod.mk_player_pause(_id, 1);
     }
     else if (!pause && this.Status == EM_PlayStatus.Paused)
     {
         this.Status = EM_PlayStatus.Playing;
         PInvoke.ZLMediaKitMethod.mk_player_pause(_id, 0);
     }
 }
Exemplo n.º 2
0
 private void mk_play_event(IntPtr userdata, int err_code, string err_msg)
 {
     if (userdata == this._resultData)
     {
         if (err_code == 0)
         {
             this.Status = EM_PlayStatus.Playing;
         }
         OnPlayResult?.Invoke(err_code, err_msg);
     }
     else if (userdata == this._shutdownData)
     {
         this.Status = EM_PlayStatus.Closed;
         OnShutdown?.Invoke(err_code, err_msg);
     }
 }
Exemplo n.º 3
0
 protected virtual void Dispose(bool disposing)
 {
     if (!disposedValue)
     {
         if (disposing)
         {
             // TODO: 释放托管状态(托管对象)
         }
         PInvoke.ZLMediaKitMethod.mk_player_release(_id);
         this.Status = EM_PlayStatus.Closed;
         Marshal.FreeHGlobal(this._resultData);
         Marshal.FreeHGlobal(this._shutdownData);
         // TODO: 释放未托管的资源(未托管的对象)并替代终结器
         // TODO: 将大型字段设置为 null
         disposedValue = true;
     }
 }
Exemplo n.º 4
0
 public void Play(string url)
 {
     this.Status = EM_PlayStatus.Init;
     PInvoke.ZLMediaKitMethod.mk_player_play(_id, url);
 }
Exemplo n.º 5
0
 public void Close()
 {
     PInvoke.ZLMediaKitMethod.mk_player_release(_id);
     this.Status = EM_PlayStatus.Closed;
 }