python 练手
可以播放大部分的音视频.
demo download: http://www.sandy1219.com/python/media.rar
playMP3.py
# -*- coding: utf-8 -*-
import wx;
import wx.media;
import os;
import SPrint;
import mediaStateBar;
import mediaList;
import SaveLog;
import MediaItem;
woldcart = "media files|*.*|avi|*.avi|rmvb|*.rmvb|rm|*.rm|wma|*.wma|mp3|*.mp3";
class MediaFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self,None,wx.NewId(),u"媒体播放器",pos=wx.DefaultPosition,size=(500,500));
self.media = '';
try:
self.media = wx.media.MediaCtrl(self,style=wx.SIMPLE_BORDER,
#szBackend=wx.media.MEDIABACKEND_DIRECTSHOW
#szBackend=wx.media.MEDIABACKEND_QUICKTIME
#szBackend=wx.media.MEDIABACKEND_WMP10
);
self.media.Bind(wx.media.EVT_MEDIA_LOADED,self.mediaLoaded);
self.media.Bind(wx.media.EVT_MEDIA_STATECHANGED,self.mediaStateChange)
except NotImplementedError:
self.Destroy()
raise;
self.listView = '';
self.item = MediaItem.MediaItem();
self.sb = mediaStateBar.MediaStateBar(self);
self.SetStatusBar(self.sb);
self.log = SaveLog.SaveLog();
#self.log.test();
self.menu = wx.Menu()
self.openMenu = self.menu.Append(wx.NewId(),u"打开文件");
self.Bind(wx.EVT_MENU,self._openFile,self.openMenu);
self.quitMenu = self.menu.Append(wx.NewId(),u"退出");
self.Bind(wx.EVT_MENU,self.quit,self.quitMenu);
self.viewMenu = wx.Menu();
self.listMenu = self.viewMenu.Append(wx.NewId(),u"打开播放列表");
self.Bind(wx.EVT_MENU,self.openList,self.listMenu);
self.loadListMenu = self.viewMenu.Append(wx.NewId(),u"加载播放列表");
相关文档:
代码很简单,不到5k行。但是思路挺好的,改成non-blocking了之后效率就是能提高不少,特别是考虑到现代的web app都需要和其他的
HTTP服务器通信,blocking的代价太大了。 Tornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed. The FriendFeed application ......
源代码下载:下载地址在这里
# 023
# Tuple(元素组)是不可变的列表
tuple1 = (1, 2, 3)
print tuple1
tuple2 = (tuple1, 4, 5, 6) # 一个元素组可以作为另外一个元素组的元素
print tuple2 # 并且能够在存储的时候保持原始的逻辑关系
for ele in tuple2:
print ele
print '\n'
for ele in tuple2[0]:
pr ......
源代码下载:下载地址在这里
# 025
# 序列的神奇之处在于你可以使用相同的方式tuple、list和string
se = ['a', 'b', 'c', 'd']
li = ['a', 'b', 'c', 'd']
tu = ('a', 'b', 'c', 'd')
string = 'abcd'
print se[1]
print li[1]
print tu[1]
print string[1]
# 序列的另外一个神奇之处在于,你可以使用负数进行索 ......
源代码下载:下载地址在这里
# 033
class Person:
age = 22
def sayHello(self): # 方法与函数的区别在于需要一个self参数
print 'Hello!'
# end of def
# end of class # 这是我良好的编程风格
p = Person()
print p.age
p.sayHello()
output:
22
Hello! ......
源代码下载:下载地址在这里
A Byte Of Python
中关于继承有这样的文字:
Suppose you want to write a program which has to keep track of the
teachers and students in a college. They have some common
characteristics such as name, age and address. They also have specific
characteristics such as sala ......