青青子美人 2017-01-06 02:54 采纳率: 0%
浏览 3544

python调用vlc显示视频实例

将libvlc.dll和libvlccore.dll放在sdk文件夹中,plugins文件夹也放在sdk文件夹中,sdk文件夹放在程序目录下。
我弄这个,实际上是为了推广,我在北京。有意者请加我微信,我的微商微信:xi9902
myvlc.py文件:
import ctypes
import os
class myvlc():
def init(self):
plugin_arg = r"--plugin-path=" + os.path.join(os.getcwd(), r'sdk\plugins')
arguments = ["-I", "dummy", "--no-ignore-config", plugin_arg]
arguments = [bytes(a,"utf-8") for a in arguments]
p = os.getcwd()
os.chdir(os.path.join(p, 'sdk'))
dll = ctypes.CDLL("libvlc.dll")
os.chdir(p)
self.dll = dll
self.libvlc_instance_ = self.dll.libvlc_new(len(arguments),(ctypes.c_char_p * len(arguments))(*arguments))
self.libvlc_media_player_ = self.dll.libvlc_media_player_new(self.libvlc_instance_)
self.libvlc_media = None
def del(self):
self.Stop()
if(self.libvlc_media):
self.dll.libvlc_media_release(self.libvlc_media)
if(self.libvlc_media_player_):
self.dll.libvlc_media_player_release(self.libvlc_media_player_)
if(self.libvlc_instance_):
self.dll.libvlc_release(self.libvlc_instance_)
def SetRenderWindow(self,hwnd):#嵌入窗体
if(self.libvlc_instance_):
self.dll.libvlc_media_player_set_hwnd(self.libvlc_media_player_,hwnd)
def PlayFile(self,filePath):#播放文件
if(self.libvlc_media):
self.dll.libvlc_media_release(self.libvlc_media)
self.libvlc_media = None
self.libvlc_media = self.dll.libvlc_media_new_path(self.libvlc_instance_, filePath.encode("utf-8"))
if(self.libvlc_media):
self.dll.libvlc_media_player_set_media(self.libvlc_media_player_, self.libvlc_media)
self.dll.libvlc_media_player_play(self.libvlc_media_player_)
def PlayUrl(self,filePath):#播放网络流
if(self.libvlc_media):
self.dll.libvlc_media_release(self.libvlc_media)
self.libvlc_media = None
self.libvlc_media = self.dll.libvlc_media_new_location(self.libvlc_instance_, filePath.encode("utf-8"))
if(self.libvlc_media):
self.dll.libvlc_media_player_set_media(self.libvlc_media_player_, self.libvlc_media)
self.dll.libvlc_media_player_play(self.libvlc_media_player_)
def Stop(self):#停止播放
if(self.libvlc_media_player_):
self.dll.libvlc_media_player_stop(self.libvlc_media_player_)
if(self.libvlc_media):
self.dll.libvlc_media_release(self.libvlc_media)
self.libvlc_media = None

调用方法:
import myvlc

v=myvlc.myvlc()
self.v=v
v.SetRenderWindow(ctypes.c_void_p(int(self.pushButton_8.winId())))
v.PlayFile(r'F:\111.wmv')

  • 写回答

1条回答

  • dabocaiqq 2017-01-14 15:13
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题