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

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 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧