VB程序员博客

VB程序开发

经过几个星期的陆续调试,小弟编写的播放器终于完成了!

多有不足之处,还望各位高手不吝赐教!(详见readme)

感谢您使用本程序
本程序需要您安装Windows Media Player 9以上版本!!
本程序在Win98/2k/XP & VB6.0环境下测试通过。
主要功能:
1.使用播放列表连续播放歌曲;
2.播放歌曲时同步显示歌词;(LRC歌词文件除后缀必须和歌曲文件同名,而且在同一目录下!)
3.实现文件的拖放操作。

本程序全部由小弟个人编写,多有不足之处,还望高人不吝赐教。

2.0更新信息:
1.改进用户接口(界面);
2.改进读取歌词文件的算法;
3.实现磁性窗口。

3.0更新信息:
1.实现同步滚动显示歌词,并动态改变滚动速度;
2.添加气球提示;
3.添加了歌词秀的显示模式;
4.修正了磁性窗体的某些BUG。

4.0更新信息:
1.优化歌词滚动的算法,节省系统资源90%以上;
2.将歌词同步滚动模块封装于控件中(鸿鹄歌词秀控件),方便他人的二次开发;
3.实现歌词滚动时的鼠标拖拽功能(横向拖拽有待改进);

有待改进的地方(还望高人不吝赐教!)
1.播放列表框无法分行显示字体颜色,如同Windows Media Player中的播放列表框
2.窗体美化
3.波谱分析
4.视觉效果

Mp3播放器★歌词同步显示★4.0.rar 

下载地址1:

http://u.115.com/file/f0b883961

下载地址2:

http://www.163pan.com/files/h03000p04.html

感谢分享感谢分享


经过几个星期的陆续调试,小弟编写的播放器终于完成了!

多有不足之处,还望各位高手不吝赐教!(详见readme)

感谢您使用本程序
本程序需要您安装Windows Media Player 9以上版本!!
本程序在Win98/2k/XP & VB6.0环境下测试通过。
主要功能:
1.使用播放列表连续播放歌曲;
2.播放歌曲时同步显示歌词;(LRC歌词文件除后缀必须和歌曲文件同名,而且在同一目录下!)
3.实现文件的拖放操作。

本程序全部由小弟个人编写,多有不足之处,还望高人不吝赐教。

2.0更新信息:
1.改进用户接口(界面);
2.改进读取歌词文件的算法;
3.实现磁性窗口。

3.0更新信息:
1.实现同步滚动显示歌词,并动态改变滚动速度;
2.添加气球提示;
3.添加了歌词秀的显示模式;
4.修正了磁性窗体的某些BUG。

4.0更新信息:
1.优化歌词滚动的算法,节省系统资源90%以上;
2.将歌词同步滚动模块封装于控件中(鸿鹄歌词秀控件),方便他人的二次开发;
3.实现歌词滚动时的鼠标拖拽功能(横向拖拽有待改进);

有待改进的地方(还望高人不吝赐教!)
1.播放列表框无法分行显示字体颜色,如同Windows Media Player中的播放列表框
2.窗体美化
3.波谱分析
4.视觉效果

Mp3播放器★歌词同步显示★4.0.rar 

下载地址1:

http://u.115.com/file/f0b883961

下载地址2:

http://www.163pan.com/files/h03000p04.html

感谢分享感谢分享


经过几个星期的陆续调试,小弟编写的播放器终于完成了!

多有不足之处,还望各位高手不吝赐教!(详见readme)

感谢您使用本程序
本程序需要您安装Windows Media Player 9以上版本!!
本程序在Win98/2k/XP & VB6.0环境下测试通过。
主要功能:
1.使用播放列表连续播放歌曲;
2.播放歌曲时同步显示歌词;(LRC歌词文件除后缀必须和歌曲文件同名,而且在同一目录下!)
3.实现文件的拖放操作。

本程序全部由小弟个人编写,多有不足之处,还望高人不吝赐教。

2.0更新信息:
1.改进用户接口(界面);
2.改进读取歌词文件的算法;
3.实现磁性窗口。

3.0更新信息:
1.实现同步滚动显示歌词,并动态改变滚动速度;
2.添加气球提示;
3.添加了歌词秀的显示模式;
4.修正了磁性窗体的某些BUG。

4.0更新信息:
1.优化歌词滚动的算法,节省系统资源90%以上;
2.将歌词同步滚动模块封装于控件中(鸿鹄歌词秀控件),方便他人的二次开发;
3.实现歌词滚动时的鼠标拖拽功能(横向拖拽有待改进);

有待改进的地方(还望高人不吝赐教!)
1.播放列表框无法分行显示字体颜色,如同Windows Media Player中的播放列表框
2.窗体美化
3.波谱分析
4.视觉效果

Mp3播放器★歌词同步显示★4.0.rar 

下载地址1:

http://u.115.com/file/f0b883961

下载地址2:

http://www.163pan.com/files/h03000p04.html

感谢分享感谢分享


经过几个星期的陆续调试,小弟编写的播放器终于完成了!

多有不足之处,还望各位高手不吝赐教!(详见readme)

感谢您使用本程序
本程序需要您安装Windows Media Player 9以上版本!!
本程序在Win98/2k/XP & VB6.0环境下测试通过。
主要功能:
1.使用播放列表连续播放歌曲;
2.播放歌曲时同步显示歌词;(LRC歌词文件除后缀必须和歌曲文件同名,而且在同一目录下!)
3.实现文件的拖放操作。

本程序全部由小弟个人编写,多有不足之处,还望高人不吝赐教。

2.0更新信息:
1.改进用户接口(界面);
2.改进读取歌词文件的算法;
3.实现磁性窗口。

3.0更新信息:
1.实现同步滚动显示歌词,并动态改变滚动速度;
2.添加气球提示;
3.添加了歌词秀的显示模式;
4.修正了磁性窗体的某些BUG。

4.0更新信息:
1.优化歌词滚动的算法,节省系统资源90%以上;
2.将歌词同步滚动模块封装于控件中(鸿鹄歌词秀控件),方便他人的二次开发;
3.实现歌词滚动时的鼠标拖拽功能(横向拖拽有待改进);

有待改进的地方(还望高人不吝赐教!)
1.播放列表框无法分行显示字体颜色,如同Windows Media Player中的播放列表框
2.窗体美化
3.波谱分析
4.视觉效果

Mp3播放器★歌词同步显示★4.0.rar 

下载地址1:

http://u.115.com/file/f0b883961

下载地址2:

http://www.163pan.com/files/h03000p04.html

感谢分享感谢分享


我以前用VB6MMC控件做了个视频播放器,现在想添回编辑功能
就是得到每一真的图像然后进行修改再存为图片
请问各位大哥应该怎么弄啊我以前用VB6MCI控件做了个视频播放器,现在想添回编辑功能
就是得到每一真的图像然后进行修改再存为图片
请问各位大哥应该怎么弄啊抓取视频图像(图片):1、先取得图像的句柄;2、确定抓取图像的区域;3、用API抓取静止图片;4、用画图程序修改;5、修改完毕后,另存为文件。这是个办法,可是我要在程序内部处理完所有的事,有什么快捷方法得到图像吗,或者有其它什么控件提供这个功能?随便谢谢楼上的兄弟使用AVI相关API将视频还原为位图+音频,然后就可以随你便修改了

改完后再生成相应格式的视频文件.

主要思路是使用现成的开源编解码器.好像没那么简单,呵呵.不知,帮顶


我在网上找了一下,得出这样的思路,你要播放3gp视频文件,就要得到相关的解码器。
可问题是,就算我找到了,那又该怎么用呢?能不能给出思路或者代码!
另外,如何找到他的解码器?
谢谢!

我全装了啊,怎么还不行啊

用Windows Media Player控件吧,最新的版本应该能播放3GP格式的,如果不能播放,可以下载一个叫做 K-Lite Mega Codec Pack的解码器,它将网络上常见的影音编码程式全部收集于一身,你只需要安装它,就可以利用Windows Media Player播放3GP格式的影片了。
下载地址:http://371.onlinedown.net/down/klcodec385f.zip


我做了一个视频播放器,用vb中的MediaPlayer,来播放avi等文件,出现了一个错误,就是文件没有加载到MediaPlayer中,看不到图像也没有声音,请各位高手给我看看哪里出现的问题,万分感谢!!!

Dim Flname As String
Dim Paus As Boolean
Dim hh As Integer, mm As Integer, ss As Integer

Private Sub Form_Load()
Form2.Width = Screen.Width / 2
Form2.Height = Screen.Height / 2
MediaPlayer1.Width = Screen.Width / 2 - 600
MediaPlayer1.Height = Screen.Height / 2 - 800
Label1.Caption = "00:00:00"
Label1.Left = MediaPlayer1.Left + MediaPlayer1.Width - Label1.Width - 900
Label1.Top = MediaPlayer1.Top + MediaPlayer1.Height - 266
Timer1.Interval = 1000
Paus = False
hh = 0
mm = 0
ss = 0
Timer1.Enabled = True

End Sub

Private Sub MediaPlayer1_PlayStateChange(ByVal NewState As Long)

If NewState = mpStopped Then
Timer1.Enabled = False
End If
If NewState = mpPaused Then
Timer1.Enabled = False
Paus = True
End If
If NewState = mpPlaying Then
  If Paus = False Then
      hh = 0
      ss = 0
      mm = 0
  Else
      Paus = False
  End If
  Timer1.Enabled = True
End If
If MediaPlayer1.AutoRewind = True Then
  MediaPlayer1.Play
End If
End Sub

Private Sub mnucicl_Click()
If mnucicl.Checked = True Then
mnucicl.Checked = False
MediaPlay1.AutoRewind = False
Else
mnucicl.Checked = True
MediaPlayer1.AutoRewind = True
End If

End Sub

Private Sub mnuexit_Click()
End

End Sub

Private Sub mnufull_Click()
Form2.Left = 0
Form2.Top = 0
Form2.Width = Screen.Width
Form2.Height = Screen.Height
MediaPlayer1.Width = Screen.Width - 600
MediaPlayer1.Height = Screen.Height - 1000
Label1.Left = MediaPlayer1.Left + MediaPlayer1.Width - Label1.Width - 1200
Label1.Top = MediaPlayer1.Top + MediaPlayer1.Height - 266

End Sub

Private Sub mnunormal_Click()
Form2.Width = Screen.Width / 2
Form2.Height = Screen.Height / 2
MediaPlayer1.Width = Screen.Width / 2 - 600
MediaPlayer1.Height = Screen.Height / 2 - 800
Label1.Left = MediaPlayer1.Left + MediaPlayer1.Width - Label1.Width - 900
Label1.Top = MediaPlayer1.Top + MediaPlayer1.Height - 266

End Sub

Private Sub mnuopen_Click()
CommonDialog1.Filter = "Wmv文件|*.wmv|Wav文件|*.wav|MIDI文件|*.mid|AVI文件|*.avi|所有文件|*.*"
On Error Resume Next
CommonDialog1.ShowOpen
Flname = CommonDialog1.FileName
MediaPlayer1.FileName = Flname
hh = 0
mm = 0
ss = 0
Timer1.Enabled = True

End Sub

Private Sub mnuautst_click()

End Sub

Private Sub mnustart_Click()
If mnustart.Checked = True Then
mnustart.Checked = False
MediaPlayer1.autoStart = False
Else
mnuautst.Checked = True
MediaPlayer1.autoStart = True
End If
End Sub

Private Sub Timer1_Timer()
ss = ss + 1
If ss >= 60 Then
  mm = mm + 1
  ss = 0
  If mm >= 60 Then
hh = hh + 1
mm = 0
  End If
End If
Label1.Caption = Format$(hh, "00") & ":" & Format$(mm, "00") & ":" & Format$(ss, "00")

 
End Sub


链接不上里面的播放器,总是跳出新窗口,请问怎么解决,要加什么代码?谢谢
Private Sub Form_Load()
WebBrowser1.Navigate "http://ttgx.32o.cn/tv1/info.htm"
End Sub

空瓶子除非你撒泡尿到里面否则怎么可能有水… 当然,除非空瓶子运气好接到天上的雨水…

vb自带的播放器WindowsMediaPlayer啊,链接不上里面的播放器,总是跳出新窗口,不知道要加什么代码
Private Sub WindowsMediaPlayer1_OpenStateChange(ByVal NewState As Long)

End Sub

你是要直接播放里面的视频吧… 拜托… 别人那得用专用的插件播放的… WMP干不来这个事情…

你拿了个钥匙就想开门… 钥匙不对,你是开不了的…

人家那是P2P播放…

不过你可以把那个OCX 下载了… 不过能不能在VB里用就不知道了… 不过貌似PPSTREAM 的可以用

你可以实验一下网易的电视插件能不能在程序里使用


自己做一个播放器我想让他在播服务器上的文件时前面加一串字符如何作?
比如:vgo://netlive|ppstream://127.0.0.1:7144/6ED0453B9FFA61868A0A267AABCC9A91.wmv
研究了好久也没有结果.
这样可以防止影片被盗链

不太明白什么意思,前几天做一个例子,使用WindowsMediaPlayer,播放的地方很简单。
WindowsMediaPlayer1.URL = "C: est.wmv",假设你想加的字符串是strAdd,那么不知道
WindowsMediaPlayer1.URL = strAdd & "C: est.wmv" 行不行,仅提供思路。

2楼说的有点哪个意思。就是说我自己做一个播放器。让播放地址原来是http://www.test.com/w.rm
在我的播放器中加一个特别符号像vgo://netlive|http://www.test.com/w.rm才可以播的哪种

在前面加了一个vgo://netlive|

如果基于别人的控件和网络协议,你这种做法意义不大,
只要一抓包,不用1分钟就可以知道你真实的HTTP地址。
除非你的vgo://真的存在自己的通讯协议,不然完全没意义。
直接在服务器端做手脚还好一点,比如服务器脚本提供媒体数据,
但会很耗资源。

如果你不是基于别人的网络协议,而是自己的握手协议,那就连服务
器端和客户端你都要一起开发,如果你不是专业搞这个的没必要搞到
这一步。

如果你想简单而又有效率的实现流媒体身份认证功能。建议使用
Windows Media Services 这类的专门作流媒体服务的程序来做服务器端。
用Media Player控件播放,可以搞 ASF、WMV 这类的影片格式。
Windows Media Services 可以管理证书之类的东西。
作得好的话还可以配合ASP登陆后才能观看。

我对这个感兴趣。想知道别的播放软件是怎么做到的。他们用的是什么技术。
应该看一些什么样的书籍资料

貌似那要自己弄个协议出来

引用 6 楼 ppcc02 的回复:
我对这个感兴趣。想知道别的播放软件是怎么做到的。他们用的是什么技术。
应该看一些什么样的书籍资料

"想知道别的播放软件是怎么做到的。"
是指什么播放器?每个的方案都有不同,看你要问什么了。

"他们用的是什么技术。"
如果说到比较底层的技术就很多了,如网络技术、流媒体压缩技术、流媒体解码技术等等。
而且这几块如果细分,那就多了。
比如网络:C/S架构、B/S架构、P2P架构…
如流媒体:视频压缩技术、音频压缩技术、视频解码技术、音频解码技术
而且流媒体格式的不同可能涉及的压缩解压技术更多,而且还要了解多种流媒体文件格式。

但是,有些软件为了实现网络数据不被他人恶意盗用的情况。而又不像花大量的精力去研究
开发流媒体这一块,通常都会使用别人的解码器进行流媒体解码。然后自己加工网络通讯这
一块。
通常做法是用DirectShow作为流媒体播放的基础。然后自己开发网络通讯服务程序及客户端。

其实你可以在客户端模拟一个HTTP服务来做的,比如你的客户端要看某个影片:
如果用HTTP地址访问得到数据的话,你给定的地址如:http://127.0.0.1:8765/223/1.rmvb
这时因为你模拟了一个HTTP服务,在你的服务中将会收到请求,然后你的客户端再连接你的服务器
通过自己的协议通讯取得数据,然后通过你模拟的服务将数据发还给播放器。
这样一来,只需要开发一个网络服务端、一个支持本地网络服务及能连接远程服务的客户端就可以了。

8楼说的很详细。你是想基于P2P技术。自己做通讯协议怎么做呢?

8楼说的很详细。我是想基于P2P技术。自己做通讯协议怎么做呢?

如果只是让IE访问 vgo://开头的URL自动调用你的程序的话,倒是不难,转一篇文章给你看看

微软官方说明:http://msdn.microsoft.com/library/default.asp?url=/workshop/networking/pluggable/overview/appendix_a.asp
这个问题是今晚 Easy 问我的,他想实现一个类似于腾讯的 tencent://… 协议功能,即页面上或地址栏里的链接只要输入带有 tencent://… 的协议,就会自动调用一个已写好的程序执行该协议的操作。之前自己也没研究过这方面的东东,上网查了一下,找到一篇很不错的介绍:Register protocol,此文中对于 Windows、Linux 和 OS X 操作系统如何注册协议都有说明。比如说 Windows,其实只需写入注册表,即可实现协议与执行程序的关联。例如腾讯的协议注册表如下:
[HKEY_CLASSES_ROOTTENCENT]
@=”TencentProtocol”
“URL Protocol”=”D:\Program Files\Tencent\QQ\Timwp.exe”
[HKEY_CLASSES_ROOTTENCENTDefaultIcon]
@=”D:\Program Files\Tencent\QQ\Timwp.exe,1″
[HKEY_CLASSES_ROOTTENCENTshell]
[HKEY_CLASSES_ROOTTENCENTshellopen]
[HKEY_CLASSES_ROOTTENCENTshellopencommand]
@=””D:\Program Files\Tencent\QQ\Timwp.exe” ”%1”"

此注册表所实现的就是当浏览器(或其它)碰到 tencent://… 时,自动调用 Timwp.exe,并把 tencent://… 地址作为第一个参数传递给 Timwp.exe。
更多参见:Registering an Application to a URL Protocol。
http://kb.mozillazine.org/Register_protocol

如果要搞P2P开发,你最好先下一个P2P的范例来看看(C++有一个在网上比较流行的范例)。
主要是了解打洞的过程,至于协议,其实如果是P2P的,怎么做握手协议都可以。
只要你能连接成功就不是什么问题了。

谢谢11楼
不过我对英文不太懂。有没有中文的教程。我想学习一下

引用 13 楼 ppcc02 的回复:
谢谢11楼
不过我对英文不太懂。有没有中文的教程。我想学习一下

下面那些中文的就足够吧?

帮顶了 。。

实现这种地址的程序连接方法很多,还可以用BHO实现,但是就像我在5楼所说的。
单实现调用,没有任何意义,如果你针对的人群是不会电脑的普通人,可以让他们
不知道你的真实地址,但针对的是防止盗链的,那就没什么用了。
但说到底,普通人要你的真实地址也没什么用,最多用些多线程的软件来下载,如
果你限制下载的连接点数,就可以杜绝这种问题,只有盗链的才会想办法要你的真
实地址,而这类人多半都会用抓包软件。

没有看出来哪里要使用tencent://地址做为文件的开头啊。