pymedia初步体验

学习python的时候突然想看看多媒体方面的开源库。

找到了pymedia。

下载后,编译:

python setup.py install <<< y

初步尝试了播放一个wav文件。

python aplayer.py /projects/media/test-org.wav

很遗憾,播放失败,提示

File "aplayer.py", line 72, in <module>

aplayer( sys.argv[ 1 ], i, r, t )

File "aplayer.py", line 47, in aplayer

snd.play( data )

Cannot play sound because of 0:

没办法,只好用SouceInsight建个工程,看看代码到底是怎么一回事。

与Play关联的有3个派生类,linux一般用alsa,估计是audio_alsa.h下的OSoundStream::Play

一看代码,感觉就有点不地道的感觉。

while(frames>0)

{

res = snd_pcm_writei(this->handle, buf, frames);

...

frames -= res;

}

危险点: res有可能比res大,buf位置没变化。

用printf确认,果然是这个原因。(到底是不是snd_pcm_writei问题还不是很清楚?这个设计的确很坑人)

简单修改如下:

if (res > 0) {

frames -= res;

if (frames < 0) frames = 0;

buf += res*this->framesize;

}

再编译,发现居然没clean功能,倒,搜寻了so位置,用如下方法再编译就能正常了。

rm -r -f build/*;python setup.py install <<< y

总体来说,这次体验让我对这个库的品质很是担心, 只能随便看看就删除了.

pymedia初步体验

时间: 2024-10-12 09:08:21

pymedia初步体验的相关文章

结合子类父类和LIstView适配器相关设置,初步体验类的多态。

在初级阶段,我们常对listview的适配器都是在一个activity类中全部写满.当你接触项目多了,你会发现大神都把各种适配器放一个包里,要用直接传如相关参数到适配器的构造方法设置ListView.今天做了个简单的demo,对于菜鸟理解多态有帮助.在MainActivity中代码如下 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState)

express 框架初步体验

一. 安装express 1.打开cmd  全局安装express 输入:npm install -gd express 2. 安装命令行工具,不然你输入express 会出现 不是内部命令. 输入:npm install -g express-generator 3.新建一个工程 cd 到你需要的路径 输入:express  expresstess 4.下一步:输入:npm install 5.运行 npm  start 6.打开浏览器输入:http://127.0.0.1:3000 好了到这

V8 javascript引擎初步体验

v8 引擎,不必多说,大名鼎鼎,迄今最快的js引擎. 这么好的东西,如果尽在浏览器中使用,太浪费了,也希望用到其他地方,比如一些客户端开发中. 闲言少讲,这就开始 下载源码 去官方网站:https://code.google.com/p/v8/ 我喜欢用git,所以从这里下载 git clone git://github.com/v8/v8.git v8 && cd v8 编译 我为android平台编译的,折腾了好久,记录一些重点.你首先要看这个:http://code.google.c

VNC树莓派(Raspberry Pi 3)远程桌面初步体验

树莓派远程登录初步实践 本文中VNC安装部分以及实现VNC服务器端自动运行的方法来自以下网址:http://shumeipai.nxez.com/2013/09/04/login-rpi-with-vnc.html?variant=zh-cn 之前买了一个树莓派3,同时也买了一个小屏幕,已经通过自带屏幕设置好wifi.在使用中发现不但屏幕小,而且显示也不好.所以还是决定用远程登录的方法试试. 树莓派HDMI显示画面(显示器质量一般,显示效果并不理想) 首先下载SecureCRT.SecureCR

2014年新一代的报表利器 Qlik Sense Desktop 初步体验

Qlik Sense Desktop 的案例展示 先上几个刚刚边看边学完成的几个报表案例效果 (如果图片显示不正常,可以重新刷新一下页面显示)- 个人感觉报表的设计过程非常简单和方便,并且报表的交互性也非常之强,很容易从各个维度来分析与查看数据信息. 开篇介绍 我估计很多人都听说过 QlikView,并且可以从 2014 BI 开发工具排名上看到 Qlik 产品已经排到第二的位置,排名第一是 Tableau,排名第三的是 Microsoft.当然前两者都主要是在报表开发方面有非常独特的优势,大数

黑马程序员--Objective-C之--OC的初步体验

一.OC简介 (一).Objective-C与C的渊源 Objective-C诞生于 20 世纪 80 年代,由Brad Cox 发明,意在将流行的.可移植的 C 语言与优雅的 Smalltalk 语言结合在一起. Objective-C 是 C 语言的一个扩展集,它以 C 语言为基础,在语言中添加了一些微妙但意义重大的特性. 苹果公司的 iphone 平台采用 Objective-C 做为 native language 的开发,Objective-C的内核是C语言的,并基于C语言实现OOP的

Yeelink初步体验

阅读目录(Content) 环境 概述 正文 回到顶部(go to top) 环境 Qemu: 2.8.0 开发板:vexpress-ca9 回到顶部(go to top) 概述 前面的博文已经使我们的虚拟开发板具备了访问外网的目的,离物联网越来越近了.要玩物联网,Yeelink不得不说,它提供了云平台,可以将设备的数据上传到云端,然后可以通过手机客户端或在网页端查看或修改,从而达到用手机客户端跟嵌入式设备通信的目的. 下面我们实现一个非常简单的功能: 添加一个虚拟开关,通过Yeelink的手机

Hadoop初步体验(安装与测试)

简述:Hadoop是最著名使用最广泛的分布式大数据处理框架,它是用Java开发的. 物理主机.虚拟机.虚拟主机这三个就不多说了.我们先在ubuntu里添加一个叫hadoop的用户 ?1:安装jdk? 下载jdk: jdk-7u75-linux-x64.tar.gz 安装jdk: #切换到root用户 su root #进入用户编译的目录 cd /usr/local/lib #将jdk压缩包解压到当前路径 tar -zxvf [jdk文件路径]/java-jdk-1.7/jdk-7u75-linu

docker初步体验

在虚拟机里试着装docker,因为只有虚拟机的内核版本是3.10以上的 一.概念 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化. Docker 镜像(Images) Docker 镜像是用于创建 Docker 容器的模板.Docker 容器(Container) 容器是独立运行的一个或一组应用.Docker 仓库(Registry) Docker 仓库用来保存镜像,可以理解为代码控制中