资源简介

python实现的视频播放器,可调窗口大小,可全屏,有进度条,不过想用的话要先装pyglet

资源截图

代码片段和文件信息

#coding=utf-8
# ----------------------------------------------------------------------------
# pyglet
# Copyright (c) 2006-2008 Alex Holkner
# All rights reserved.

# Redistribution and use in source and binary forms with or without
# modification are permitted provided that the following conditions 
# are met:
#
#  * Redistributions of source code must retain the above copyright
#    notice this list of conditions and the following disclaimer.
#  * Redistributions in binary form must reproduce the above copyright 
#    notice this list of conditions and the following disclaimer in
#    the documentation and/or other materials provided with the
#    distribution.
#  * Neither the name of pyglet nor the names of its
#    contributors may be used to endorse or promote products
#    derived from this software without specific prior written
#    permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# “AS IS“ AND ANY EXPRESS OR IMPLIED WARRANTIES INCLUDING BUT NOT
# LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT INDIRECT
# INCIDENTAL SPECIAL EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING
# BUT NOT LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE DATA OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY WHETHER IN CONTRACT STRICT
# LIABILITY OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# ----------------------------------------------------------------------------

‘‘‘Audio and video player with simple GUI controls.
‘‘‘

__docformat__ = ‘restructuredtext‘
__version__ = ‘$Id: $‘

import sys

from pyglet.gl import *
import pyglet
from pyglet.window import key

def draw_rect(x y width height):
    glBegin(GL_LINE_LOOP)
    glVertex2f(x y)
    glVertex2f(x + width y)
    glVertex2f(x + width y + height)
    glVertex2f(x y + height)
    glEnd()

class Control(pyglet.event.EventDispatcher):
    x = y = 0
    width = height = 10

    def __init__(self parent):
        super(Control self).__init__()
        self.parent = parent

    def hit_test(self x y):#点中控件
        return (self.x < x < self.x + self.width and  
                self.y < y < self.y + self.height)

    def capture_events(self):
        self.parent.push_handlers(self)

    def release_events(self):
        self.parent.remove_handlers(self)

class Button(Control):
    charged = False

    def draw(self):
        if self.charged:
            glColor3f(0 1 0)
        draw_rect(self.x self.y self.width self.height)
        glColor3f(1 1 1)
        self.draw_label()

    def on_mouse_press(self x y button modifiers):
        self.capture_events()
  

评论

共有 条评论