Как инициализировать 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?
Заранее благодарим за любую помощь, которую вы можете предоставить!