VC WMP控件关于获取媒体时长 00的问题。

在VC下,使用Windows media player控件播放媒体列表时,只有播放列表里的第一个媒体在调用get_durationString()方法获取媒体长度时的结果为00:00,网上都说获取这个长度的方法是异步的,得到的结果是不准确的,需要处理一个等待消息。

最后,我在添加媒体到播放列表时,随意调用媒体的一个get方法,结果在用get_durationString()获取媒体长度时就可以输出正确的结果了:

部分代码如下:

m_playlist.clear();   // 先清空播放列表
		
		m_list2.ResetContent();   // 列表控件
		// m_vecVideoList为存储播放列表的集合
		for (int i =0;i<m_vecVideoList.size();i++)  
		{
			CString mediaFileName;  // 存储视频文件名称
			mediaFileName =  m_vecVideoList.at(i);          // 指定索引的视频文件路径
			// 添加播放列表到列表控件
			m_list2.InsertString(i,mediaFileName);

			// 创建一个媒体
			CWMPMedia media = m_mPlayer.newMedia(mediaFileName);  
			// 调用获取属性的方法(随便调用,也可以是get_durationString)
			media.get_name();
			// 将媒体添加到播放列表
			m_playlist.appendItem(media);
		}
		// 添加播放列表到当前Player控件
		m_mPlayer.put_currentPlaylist(m_playlist);
		
		// 获取控件的当前播放列表
		CWMPPlaylist playlist = m_mPlayer.get_currentPlaylist();
		for (int i=0;i<playlist.get_count();i++)
		{
			CWMPMedia media = playlist.get_Item(i);
			// 输出,
			SetMsg(media.get_name());
			// 在这里就可以正常输出时长了。
			SetMsg(media.get_durationString());
		}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值