windows 下VLC---LIBVLC API解析(五)-----日志相关API

引子

LIBVLC API解析系列文章的每一篇都尽量将相关联的API放在一起讲,随着学习的深入将不断更新本文,如若转载请保证文章完整性及保留博客地址。

这是LIBVLC API解析系列的第二篇,主要介绍VLC日志相关 API。

改定履历

2010-11-08------------------新建文档 2010-12-06------------------移除例程代码

API

libvlc_log_* 函数提供对LibVLC消息日志的访问,用于调试或用于高级用户

  • VLC_PUBLIC_API unsigned libvlc_get_log_verbosity( const libvlc_instance_t *p_instance );返回LIBVLC的日志级别 param: p_instance:libvlc 实例 return: 日志级别
  • VLC_PUBLIC_API unsigned libvlc_get_log_verbosity( const libvlc_instance_t *p_instance );设置LIBVLC的日志级别 param: p_instance:libvlc 实例 level:日志级别
  • VLC_PUBLIC_API libvlc_log_t *libvlc_log_open( libvlc_instance_t *p_instance );打开一个VLC消息日志句柄 param: p_instance:libvlc实例 return: 成功:返回日志消息实例;失败:出错返回NULL;
  • VLC_PUBLIC_API void libvlc_log_close( libvlc_log_t *p_log );关闭一个VLC消息日志实例 param: p_log:libvlc日志实例或NULL
  • VLC_PUBLIC_API unsigned libvlc_log_count( const libvlc_log_t *p_log );返回一个日志实例内的消息数目 param: p_log:LIBVLC日志实例或NULL; return: 返回日志消息的数目,如果p_log为空则返回0;
  • VLC_PUBLIC_API void libvlc_log_clear( libvlc_log_t *p_log );清空一个日志实例 日志实例内所有的消息都将被清空。日志应定期清除以避免堵塞。 param: p_log:LIBVLC日志实例或NULL;
  • VLC_PUBLIC_API libvlc_log_iterator_t *libvlc_log_get_iterator( const libvlc_log_t *p_log );分配或返回一个指向日志消息的新迭代器 param: p_log:LIBVLC日志实例 return: 日志迭代器对象或出错返回NULL
  • VLC_PUBLIC_API void libvlc_log_iterator_free( libvlc_log_iterator_t *p_iter );释放之前分配的日志消息迭代器 param: p_iter:LIBVLC日志迭代器或NULL
  • VLC_PUBLIC_API int libvlc_log_iterator_has_next( const libvlc_log_iterator_t *p_iter );迭代器返回日志是否有更多消息 param: p_iter:LIBVLC日志迭代器或NULL; return: 有:返回TRUE;没有:返回FALSE;
  • VLC_PUBLIC_API libvlc_log_message_t *libvlc_log_iterator_next( libvlc_log_iterator_t *p_iter,
                                                                   libvlc_log_message_t *p_buffer );返回下一条日志消息 消息内容一定不能被释放了 param: p_iter:LIBVLC日志迭代器或NULL; p_buffer:日志缓冲区; return: 日志消息对象或NULL;

例程

之前说了,呆龙在做一个简易播放器时需要做日志播放器处理。上面讲了一些,下面给出个简单例子:

背景:对于简易LIBVLC日志处理,我们有三点未知:

1. WHEN:播放器运行时,libvlc何时打出日志;

2. WHERE:我们应该在应用代码的什么地方打日志;

3. HOW:如何利用LIBVLC给出的以上日志API打日志;

基于以上三点,我的想法是单独开一个线程,每隔一秒检查是否有日志,有则打出,没有继续

 

 

 

例程代码可到这里下载:

 http://download.csdn.net/source/2817732

你可能感兴趣的:(windows,api,null,iterator,buffer,2010)