Как инициализировать GstAudio.AudioCdSrc() для обработки аудио компакт-дисков с помощью Python и Gstreamer?

Я пытаюсь написать проигрыватель компакт-дисков, используя Python и Gstreamer.

Мне удалось получить аудио компакт-диск (CDDA) для воспроизведения с использованием привязок Python и Gstreamer, используя этот наивный метод:

      import gi
gi.require_version("Gst", "1.0")
from gi.repository import Gst
Gst.init(None)
player = Gst.ElementFactory.make("playbin", "player")
self.player.set_property("uri", "cdda://")
player.set_state(Gst.State.PLAYING)

Позже я нашел справочную документацию , которая, кажется, обрабатывает множество вещей, которые я хотел бы сделать: получить текущую воспроизводимую дорожку, получить идентификатор диска, перейти к следующей/предыдущей дорожке и т. д.

Однако я не понимаю, как его инициализировать.

Если я побегу

      import gi
gi.require_version("GstAudio", "1.0")
from gi.repository import GstAudio
mycd = GstAudio.AudioCdSrc()

процесс вылетает со следующей ошибкой

      <stdin>:1: Warning: g_hash_table_lookup: assertion 'hash_table != NULL' failed
<stdin>:1: Warning: g_hash_table_insert_internal: assertion 'hash_table != NULL' failed

(process:218971): GStreamer-CRITICAL **: 12:36:06.604: gst_tag_register_static: assertion 'type != 0 && type != GST_TYPE_LIST' failed

(process:218971): GStreamer-CRITICAL **: 12:36:06.604: gst_tag_register_static: assertion 'type != 0 && type != GST_TYPE_LIST' failed
fish: “python3” terminated by signal SIGSEGV (Address boundary error)

Как я могу использовать GstAudio.AudioCdSrcдля удовлетворения моих потребностей CDDA?

Заранее благодарим за любую помощь, которую вы можете предоставить!

0 ответов

Другие вопросы по тегам