2015-02-16 8 views
1

Я создал пользовательский интерфейс с использованием Qt Designer и создаю логику в pyqt4c. При попытке воспроизведения видео или аудио большинство форматов не поддерживаются, хотя я уверен, что они должны быть.Возможности фононного бэкэнда слишком узкие

Это Phonon.BackendCapabilities.availableMimeTypes() выход:

application/kate 
application/ogg 
application/x-3gp 
application/x-ogg-avi 
application/x-ogm-audio 
application/x-ogm-video 
audio/mpeg 
audio/ogg 
audio/webm 
audio/x-alaw 
audio/x-amr-nb-sh 
audio/x-amr-wb-sh 
audio/x-au 
audio/x-dts 
audio/x-flac 
audio/x-m4a 
audio/x-matroska 
audio/x-mulaw 
audio/x-private1-dts 
audio/x-sbc 
audio/x-speex 
audio/x-vorbis 
audio/x-vorbis+ogg 
audio/x-wav 
audio/x-wavpack 
multipart/x-mixed-replace 
video/mj2 
video/ogg 
video/quicktime 
video/webm 
video/x-dv 
video/x-fli 
video/x-flv 
video/x-matroska 
video/x-matroska-3d 
video/x-msvideo 
video/x-theora 
video/x-vp8 
video/x-vp9 

Я проверил и в /usr/share/mime: У меня есть огромное количество кодеков, и я могу играть в любой видео/аудио формат в любом плеере: VLC, dragonplayer, Mlv, MPlayer и т. д.

Как я могу расширить доступные кодеки? Должен ли я добавить какой-либо путь к классу phobos?

+0

Вы проверили текущий фоновый фонон? В моей системе у меня есть 2 backend - VLC и GStreamer и VLC воспроизводят все, где GStreamer не работает в определенных форматах. –

+1

@Iskren я не проверял. Я считаю, что документация трудно читать. Я изо всех сил пытался найти, какие методы я могу использовать, и я все еще немного борюсь. Вы говорите, что я могу динамически переключать сервер и что у каждого программиста есть другой набор возможностей? –

+0

@ Мать исправлена! Спасибо –

ответ

1

В настоящее время фононный бэкэнд отвечает за поддержку формата. Вы можете переключиться на другой, чтобы получить дополнительные поддерживаемые MimeTypes/форматы.

Подробнее см. Ниже.

Пример программы:

from PyQt4.QtGui import QApplication 
from PyQt4.phonon import Phonon 
import sys 

app = QApplication(sys.argv) 

print len(Phonon.BackendCapabilities.availableMimeTypes()) 

В KDE System settings -> Multimedia -> Audio and Video Settings -> Backend я выбрал "VLC". Выполнение вышеизложенного дает 89. Возвращаясь к конфигурации Backend, выбирая «GStreamer» и запуская сценарий, выдает 213. Это означает, что бэкэнд GStreamer поддерживает больше MimeTypes, чем VLC. К сожалению, бэкенд Phonon является общесистемным, и вы не можете переопределить его для одного приложения, или, по крайней мере, я не мог узнать, как это выглядит на фоне класса Phonon.

+0

Я решил и разместил решение. Спасибо за обратную связь! знак равно –

0

---------------------------- МОЕ РЕШЕНИЕ ---------------- -----------------

Поскольку Phonon использует возможности вашей системы, вам необходимо установить библиотеки для кодирования и декодирования медиа. Однако я не осознавал необходимость установки библиотек, совместимых с phonon-qt4. Итак:

Использование qt4 установки:

фонон-qt4-VLC

фонон-qt4-MPlayer (неуправляемый так, возможно, устаревшее)

Использование qt5:

фонон-qt5 -vlc (и т.д.)

Если у кого-то есть аналогичная проблема, и это не работает, не стесняйтесь публиковать здесь!