Media player控件如何支持p2p音乐播放 我希望通过p2p共享歌曲,可是用media player控件播放歌曲时,总是播开始缓冲的数据可以,后面的数据就无法播放了。谁有好的办法来解决这个问题,或者更好的用media player控件播放p2p歌曲的方案啊,十分感谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MediaPlayer本身应该不支持P2P协议,但是你可以自己写一个P2P层,将流数据写在本地文件里,用MediaPlayer播放就行了,只要写文件进度比播放进度快就行了 CWMPPlayer4 m_ocx_mpe;CWMPMedia m_media;CWMPPlaylist m_playlist;CWMPSettings m_set;m_media = static_cast <CWMPMedia>(m_ocx_mpe.newMedia("g:\\__心太软.mp3"));m_playlist.insertItem(0, m_media);m_ocx_mpe.SetCurrentPlaylist(m_playlist);m_set = (CWMPSettings)m_ocx_mpe.GetSettings();m_set.SetAutoStart(true); 我设置接收到1分钟的数据时开始播放,并继续接收数据,可是每次播放到1分钟就自动停了,后面的数据无法播放,选择重新开始播放,才会把完整的歌曲播放完毕。是不是media player控件一开始就初始化读取歌曲的长度,以后即使有新数据,也不自动更新,所以以后的数据无法播放?怎么解决啊? 不知道是不是该这样:while(){接收文件片打开文件写入文件片关闭文件}可能播放器一开始打开为下载完的音乐后,可以先加载固定长度,而这个固定长度却比你当前的音乐文件还长,就不再加载了 都已经P2P了,还用什么控件?当然是自己实现播放器了!如果是要解码 ASF 格式,去微软网站下载《Windows Media Format SDK》看看吧。 p2p下载只是整个很小的一个应用,其他很多功能都需要播放器,而且都是用的控件,不可能为了一个p2p把其他的都改了 Media Player是采用和DirectShow的Filter方式,不知道其是否有支持p2p的source filter 可以用ds开发filter的方式来扩展Media Player 你写文件片的时候应该及时关闭文件句柄while(){//接收数据片//打开文件//写入数据片//关闭文件}我觉得:media player是能先读取固定长度的数据作为缓冲,这个固定长度可能比你的当前文件长,所以media player就不会再去读取了 跟关闭文件没关系,我是共享方式操作的。看来是没有办法解决了吗?是不是只能放弃media player控件了? Win7删除任务栏快捷方式? 按键线程处理中的代码顺序执行问题 求救 各位~ 关于框架分割的问题 VC6下使用水晶报表的郁闷问题 关于_mbsrchr函数在x64位平台下的问题 FtpSetCurrentDirectory函数为什么总是失败阿?急!!!!代码如下 为什么IHTMLEmbedElement 对象的put_src不起作用?(在线等待) 请教有关vc转换成C++builder的问题! 获取进程描述 非阻塞的socket(IOCP中)有没有类似SO_RCVTIMEO的这种机制 XP系统下IPv6 recvfrom()接收不到数据问题!恳求指教!
CWMPMedia m_media;
CWMPPlaylist m_playlist;
CWMPSettings m_set;m_media = static_cast <CWMPMedia>(m_ocx_mpe.newMedia("g:\\__心太软.mp3"));
m_playlist.insertItem(0, m_media);
m_ocx_mpe.SetCurrentPlaylist(m_playlist);
m_set = (CWMPSettings)m_ocx_mpe.GetSettings();
m_set.SetAutoStart(true);
我设置接收到1分钟的数据时开始播放,并继续接收数据,可是每次播放到1分钟就自动停了,后面的数据无法播放,选择重新开始播放,才会把完整的歌曲播放完毕。
是不是media player控件一开始就初始化读取歌曲的长度,以后即使有新数据,也不自动更新,所以以后的数据无法播放?怎么解决啊?
while()
{
接收文件片
打开文件
写入文件片
关闭文件
}
可能播放器一开始打开为下载完的音乐后,可以先加载固定长度,而这个固定长度却比你当前的音乐文件还长,就不再加载了
都已经P2P了,还用什么控件?当然是自己实现播放器了!如果是要解码 ASF 格式,去微软网站下载《Windows Media Format SDK》看看吧。
{
//接收数据片
//打开文件
//写入数据片
//关闭文件
}我觉得:
media player是能先读取固定长度的数据作为缓冲,这个固定长度可能比你的当前文件长,所以media player就不会再去读取了