Как вы проигрываете ogg-файлы на Python в Linux? - PullRequest
3 голосов
/ 23 января 2011

Может ли кто-нибудь предоставить краткий код или пример псевдокода о том, как воспроизводить файлы ogg в Python 2.7.1 или Python 3.1.3 в Linux (вместе со списком любых зависимостей из Synaptic Package Manager или где-либо еще)?

Ответы [ 3 ]

3 голосов
/ 23 января 2011

Если вы не возражаете, в зависимости от numpy, мой пакет audiolab работает довольно хорошо и поддерживает oggfile из коробки, если его поддерживает сам libsndfile (он должен работать в linux, если у вас достаточно свежая версия):

# the dependencies
sudo apt-get install libsndfile-dev python-numpy cython python-setuptools
# install audiolab
cd audiolab-0.11 && python setup.py install --user

Основной API прост:

from scikits.audiolab.pysndfile.matapi import oggread
data, fs, enc = oggread("myfile.ogg")

Доступен также более полный API для управления выходным типом, диапазоном и т. Д.Вы можете найти выпуски на pypi, а код на github

1 голос
/ 23 января 2011

Некоторое время назад я пытался написать некоторый прототип игры на python, и я использовал pygame.http://www.pygame.org/news.html Вы должны быть в состоянии найти его в synaptic, и он должен установить все необходимые зависимости, если ogg не будет работать, вам, вероятно, понадобится libvorbis, но, скорее всего, он уже установлен.В любом случае, наверное, лучше всего читать пигмеи.Если это не игра, для создания которой вам может понадобиться другая библиотека.Но тогда все, что я могу предложить, это попробовать поискать.

0 голосов
/ 20 января 2014

Я использовал py-gstreamer для воспроизведения файлов ogg со следующим кодом

import sys, os

##FOR UBUNTU 13.04 onwards
import gi
gi.require_version('Gst', '1.0')
from gi.repository import GObject, Gst, Gtk
##end
GObject.threads_init()
Gst.init(None)

uri = "http://blender-podcast.org/episodes/Blender_Podcast_Episode_028.ogg"
#pipeline = Gst.Pipeline()
#delay = Gst.ElementFactory.make("audiodelay","delay")
player = Gst.ElementFactory.make("playbin", "player")
fakesink = Gst.ElementFactory.make("fakesink", "fakesink")
# pipeline.add(player)
# pipeline.add(fakesink)

player.set_property('uri', uri)
player.set_property("video-sink", fakesink)
player.set_state(Gst.State.PLAYING)
Gtk.main()

Установка

sudo apt-get install libgstreamer1.0-0 libgstreamer1.0-0-dbg libgstreamer1.0-dev liborc-0.4-0 liborc-0.4-0-dbg liborc-0.4-dev liborc-0.4-doc gir1.2-gst-plugins-base-1.0 gir1.2-gstreamer-1.0 gstreamer1.0-alsa gstreamer1.0-doc gstreamer1.0-omx gstreamer1.0-plugins-bad gstreamer1.0-plugins-bad-dbg gstreamer1.0-plugins-bad-doc gstreamer1.0-plugins-base gstreamer1.0-plugins-base-apps gstreamer1.0-plugins-base-dbg gstreamer1.0-plugins-base-doc gstreamer1.0-plugins-good gstreamer1.0-plugins-good-dbg gstreamer1.0-plugins-good-doc gstreamer1.0-plugins-ugly gstreamer1.0-plugins-ugly-dbg gstreamer1.0-plugins-ugly-doc gstreamer1.0-pulseaudio gstreamer1.0-tools gstreamer1.0-x libgstreamer-plugins-bad1.0-0 libgstreamer-plugins-bad1.0-dev libgstreamer-plugins-base1.0-0 libgstreamer-plugins-base1.0-dev
...