Spec-Zone.ru › GTK 4.0

GtkMediaStream

GtkMediaStream — Отображение медиа в GTK

Функции

gboolean gtk_media_stream_is_prepared ()
const GError * gtk_media_stream_get_error ()
gboolean gtk_media_stream_has_audio ()
gboolean gtk_media_stream_has_video ()
void gtk_media_stream_play ()
void gtk_media_stream_pause ()
gboolean gtk_media_stream_get_playing ()
void gtk_media_stream_set_playing ()
gboolean gtk_media_stream_get_ended ()
gint64 gtk_media_stream_get_timestamp ()
gint64 gtk_media_stream_get_duration ()
gboolean gtk_media_stream_is_seekable ()
gboolean gtk_media_stream_is_seeking ()
void gtk_media_stream_seek ()
gboolean gtk_media_stream_get_loop ()
void gtk_media_stream_set_loop ()
gboolean gtk_media_stream_get_muted ()
void gtk_media_stream_set_muted ()
double gtk_media_stream_get_volume ()
void gtk_media_stream_set-volume ()
void gtk_media_stream_realize ()
void gtk_media_stream_unrealize ()
void gtk_media_stream_prepared ()
void gtk_media_stream_unprepared ()
void gtk_media_stream_update ()
void gtk_media_stream_ended ()
void gtk_media_stream_seek_success ()
void gtk_media_stream_seek_failed ()
void gtk_media_stream_gerror ()
void gtk_media_stream_error ()
void gtk_media_stream_error_valist ()

Свойства

gint64 duration Чтение
gboolean ended Чтение
GError * error Чтение
gboolean has-audio Чтение
gboolean has-video Чтение
gboolean loop Чтение/Запись
gboolean muted Чтение/Запись
gboolean playing Чтение/Запись
gboolean prepared Чтение/Запись
gboolean seekable Чтение
gboolean seeking Чтение
gint64 timestamp Чтение
double volume Чтение/Запись

Типы и значения

GtkMediaStream
struct GtkMediaStreamClass

Иерархия объектов

    GObject
    ╰── GtkMediaStream
        ╰── GtkMediaFile

Реализованные интерфейсы

GtkMediaStream реализует GdkPaintable.

Файлы

#include <gtk/gtk.h>

Описание

GtkMediaStream — это точка интеграции для воспроизведения медиа внутри GTK.

GTK предоставляет реализацию интерфейса GtkMediaStream, которая называется GtkMediaFile.

Помимо API для воспроизведения потоков, ориентированных на приложения, GtkMediaStream имеет ряд API, полезных только для реализаций и не предназначенных для использования в приложениях: gtk_media_stream_prepared(), gtk_media_stream_unprepared(), gtk_media_stream_update(), gtk_media_stream_ended(), gtk_media_stream_seek_success(), gtk_media_stream_seek_failed(), gtk_media_stream_gerror(), gtk_media_stream_error(), gtk_media_stream_error_valist().

Функции

gtk_media_stream_is_prepared ()

gboolean
gtk_media_stream_is_prepared (GtkMediaStream *self);

Возвращает, завершена ли инициализация потока и известны ли наличие аудио и видео.

Параметры

self

a GtkMediaStream

Возвращает

TRUE если поток подготовлен

gtk_media_stream_get_error ()

const GError *
gtk_media_stream_get_error (GtkMediaStream *self);

Если поток находится в состоянии ошибки, возвращает GError, объясняющий это состояние. Любой тип ошибки может быть сообщен здесь в зависимости от реализации потока мультимедиа.

Поток мультимедиа в состоянии ошибки не может быть обработан, вызовы, такие как gtk_media_stream_play() или gtk_media_stream_seek(), не будут иметь никакого эффекта.

GtkMediaStream сам по себе не предоставляет способа сброса ошибки, но реализации могут предоставлять параметры. Например, GtkMediaFile сбросит ошибки, когда новый источник будет установлен с помощью gtk_media_file_set_file().

Параметры

self

a GtkMediaStream

Возвращает

NULL если не в состоянии ошибки или GError потока.

[nullable][transfer none]

gtk_media_stream_has_audio ()

gboolean
gtk_media_stream_has_audio (GtkMediaStream *self);

Возвращает, есть ли в потоке аудио.

Параметры

self

a GtkMediaStream

Возвращает

TRUE если в потоке есть аудио

gtk_media_stream_has_video ()

gboolean
gtk_media_stream_has_video (GtkMediaStream *self);

Возвращает, есть ли в потоке видео.

Параметры

self

a GtkMediaStream

Возвращает

TRUE если в потоке есть видео

gtk_media_stream_play ()

void
gtk_media_stream_play (GtkMediaStream *self);

Начинает воспроизведение потока. Если поток находится в состоянии ошибки или уже воспроизводится, ничего не делает.

Параметры

self

a GtkMediaStream

gtk_media_stream_pause ()

void
gtk_media_stream_pause (GtkMediaStream *self);

Приостанавливает воспроизведение потока. Если поток не воспроизводится, ничего не делает.

Параметры

self

a GtkMediaStream

gtk_media_stream_get_playing ()

gboolean
gtk_media_stream_get_playing (GtkMediaStream *self);

Возвращает, воспроизводится ли поток в данный момент.

Параметры

self

a GtkMediaStream

Возвращает

TRUE если поток воспроизводится

gtk_media_stream_set_playing ()

void
gtk_media_stream_set_playing (GtkMediaStream *self,
                              gboolean playing);

Начинает или приостанавливает воспроизведение потока.

Параметры

self

a GtkMediaStream

playing

необходимо ли начать или приостановить воспроизведение

gtk_media_stream_get_ended ()

gboolean
gtk_media_stream_get_ended (GtkMediaStream *self);

Возвращает, завершено ли воспроизведение потоков.

Параметры

self

a GtkMediaStream

Возвращает

TRUE если воспроизведение завершено

gtk_media_stream_get_timestamp ()

gint64
gtk_media_stream_get_timestamp (GtkMediaStream *self);

Возвращает текущий временной штамп представления в микросекундах.

Параметры

self

a GtkMediaStream

Возвращает

временной штамп в микросекундах

gtk_media_stream_get_duration ()

gint64
gtk_media_stream_get_duration (GtkMediaStream *self);

Получает продолжительность потока. Если продолжительность неизвестна, будет возвращено 0.

Параметры

self

a GtkMediaStream

Возвращает

продолжительность потока или 0, если неизвестна.

gtk_media_stream_is_seekable ()

gboolean
gtk_media_stream_is_seekable (GtkMediaStream *self);

Проверяет, может ли поток быть доступен для поиска.

Это должно быть подсказкой. Потоки могут не допускать поиска, даже если эта функция возвращает TRUE. Однако, если эта функция возвращает FALSE, потоки гарантированно не будут доступны для поиска, и пользовательские интерфейсы могут скрывать элементы управления, которые позволяют искать.

Разрешается вызывать gtk_media_stream_seek() в потоке, недоступном для поиска, хотя это ничего не сделает.

Параметры

self

a GtkMediaStream

Возвращает

TRUE если поток может поддерживать поиск

gtk_media_stream_is_seeking ()

gboolean
gtk_media_stream_is_seeking (GtkMediaStream *self);

Проверяет, выполняется ли в настоящее время операция поиска.

Параметры

self

a GtkMediaStream

Возвращает

TRUE если выполняется операция поиска.

gtk_media_stream_seek ()

void
gtk_media_stream_seek (GtkMediaStream *self,
                       gint64 timestamp);

Начать операцию поиска в self до timestamp . Если timestamp находится вне диапазона, он будет ограничен.

Операции поиска могут не завершаться мгновенно. Пока выполняется операция поиска, свойство GtkMediaStream:seeking будет установлено.

При вызове gtk_media_stream_seek() во время выполнения операции поиска, новый поиск переопределит любой ожидающий поиск.

Параметры

self

a GtkMediaStream

timestamp

временной штамп для поиска.

gtk_media_stream_get_loop ()

gboolean
gtk_media_stream_get_loop (GtkMediaStream *self);

Возвращает, установлено ли для потока циклическое воспроизведение. Подробности см. в gtk_media_stream_set_loop().

Параметры

self

a GtkMediaStream

Возвращаемое значение

TRUE если поток должен повторяться

gtk_media_stream_set_loop ()

void
gtk_media_stream_set_loop (GtkMediaStream *self,
                           gboolean loop);

Устанавливает, должен ли поток повторяться, т.е. начать воспроизведение с начала вместо остановки в конце.

Не все потоки могут поддерживать циклическое воспроизведение, в частности, потоки без возможности поиска. Эти потоки проигнорируют настройку циклического воспроизведения и просто остановятся.

Параметры

self

a GtkMediaStream

loop

TRUE если поток должен повторяться

gtk_media_stream_get_muted ()

gboolean
gtk_media_stream_get_muted (GtkMediaStream *self);

Возвращает, заглушен ли звук для потока. Подробности см. в gtk_media_stream_set_muted().

Параметры

self

a GtkMediaStream

Возвращаемое значение

TRUE если поток заглушен

gtk_media_stream_set_muted ()

void
gtk_media_stream_set_muted (GtkMediaStream *self,
                            gboolean muted);

Устанавливает, должен ли поток аудио быть заглушен. Заглушение потока приведет к отсутствию звука, но не изменит громкость. Это означает, что заглушение и затем разглушение потока восстановит настройки громкости.

Если у потока нет аудио, вызов этой функции все равно сработает, но не будет слышно звука.

Параметры

self

a GtkMediaStream

muted

TRUE если поток должен быть заглушен

gtk_media_stream_get_volume ()

double
gtk_media_stream_get_volume (GtkMediaStream *self);

Возвращает громкость аудио для потока. Подробности см. в gtk_media_stream_set_volume().

Параметры

self

a GtkMediaStream

Возвращаемое значение

громкость потока от 0.0 до 1.0

gtk_media_stream_set_volume ()

void
gtk_media_stream_set_volume (GtkMediaStream *self,
                             double volume);

Устанавливает громкость аудио потока. Этот вызов функции будет работать даже если поток заглушен.

Указанное volume должно находиться в диапазоне от 0.0 (тишина) до 1.0 (максимальная громкость). Значения вне этого диапазона будут ограничены ближайшим допустимым значением.

Если у потока нет аудио или он заглушен, вызов этой функции все равно сработает, но не даст немедленного звукового эффекта. При разглушении потока новое значение громкости вступит в силу.

Параметры

self

a GtkMediaStream

volume

Новая громкость потока от 0.0 до 1.0

gtk_media_stream_realize ()

void
gtk_media_stream_realize (GtkMediaStream *self,
                          GdkSurface *surface);

Вызывается пользователем для привязки медиа-потока к GdkSurface, которым он управляет. Затем поток может получить доступ к ресурсам surface для целей рендеринга. В частности, медиа-потоки могут захотеть создать GdkGLContexts или синхронизироваться с GdkFrameClock.

Ответственный за вызов этой функции должен вызвать gtk_media_stream_unrealize() до уничтожения потока или surface.

Несколько вызовов этой функции могут произойти от разных пользователей видео, даже с одинаковым surface. Каждый из этих вызовов должен быть последован вызовом gtk_media_stream_unrealize().

Необязательно вызывать эту функцию для работы медиа-потока.

Параметры

self

a GtkMediaStream

surface

a GdkSurface

gtk_media_stream_unrealize ()

void
gtk_media_stream_unrealize (GtkMediaStream *self,
                            GdkSurface *surface);

Отменяет предыдущий вызов gtk_media_stream_realize() и заставляет поток высвободить все ресурсы, выделенные из surface.

Параметры

self

a GtkMediaStream previously realized

surface

the GdkSurface the stream was realized with

gtk_media_stream_prepared ()

void
gtk_media_stream_prepared (GtkMediaStream *self,
                           gboolean has_audio,
                           gboolean has_video,
                           gboolean seekable,
                           gint64 duration);

Вызывается реализациями GtkMediaStream для оповещения о готовности потока к воспроизведению и предоставления деталей о потоке.

Обратите внимание, что аргументы являются подсказками. Если реализация потока не может определить правильные значения, лучше действовать с осторожностью и вернуть TRUE. Пользовательские интерфейсы будут использовать эти значения для определения, какие элементы управления отображать.

Эта функция не может быть вызвана снова, пока поток не будет сброшен с помощью gtk_media_stream_unprepared().

Параметры

self

a GtkMediaStream

has_audio

TRUE если поток должен указывать поддержку аудио

has_video

TRUE если поток должен указывать поддержку видео

seekable

TRUE если поток должен указывать возможность поиска

duration

Продолжительность потока или 0, если неизвестна

gtk_media_stream_unprepared ()

void
gtk_media_stream_unprepared (GtkMediaStream *self);

Сбрасывает реализацию заданного медиа-потока. gtk_media_stream_prepared() теперь можно вызвать снова.

Эта функция также сбросит любое состояние ошибки, в котором находился поток.

Параметры

self

a GtkMediaStream

gtk_media_stream_update ()

void
gtk_media_stream_update (GtkMediaStream *self,
                         gint64 timestamp);

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

Параметры

self

объект GtkMediaStream

timestamp

новая отметка времени

gtk_media_stream_ended ()

void
gtk_media_stream_ended (GtkMediaStream *self);

Приостанавливает поток медиа и отмечает его как завершенный. Это только подсказка, вызовы GtkMediaStream.play() всё ещё могут выполняться.

Параметры

self

объект GtkMediaStream

gtk_media_stream_seek_success ()

void
gtk_media_stream_seek_success (GtkMediaStream *self);

Успешно завершает операцию поиска, начатую с помощью GtkMediaStream.seek(). Эта функция сбросит свойство GtkMediaStream:ended, если оно было установлено.

См. gtk_media_stream_seek_failed() для другого способа завершения поиска.

Параметры

self

объект GtkMediaStream

gtk_media_stream_seek_failed ()

void
gtk_media_stream_seek_failed (GtkMediaStream *self);

Завершает операцию поиска, начатую с помощью GtkMediaStream.seek(), как неудачную. Это не вызовет ошибку в потоке и предполагает, что воспроизведение продолжится так, как если бы поиск не выполнялся.

См. gtk_media_stream_seek_success() для другого способа завершения поиска.

Параметры

self

объект GtkMediaStream

gtk_media_stream_gerror ()

void
gtk_media_stream_gerror (GtkMediaStream *self,
                         GError *error);

Устанавливает self в состояние ошибки. Это приостановит поток (вы можете проверить ошибку с помощью gtk_media_stream_get_error() в вашей реализации GtkMediaStream.pause()), прервёт ожидающие запросы поиска и отметит поток как подготовленный.

Если поток уже находится в состоянии ошибки, этот вызов будет проигнорирован, и существующая ошибка сохранится. FIXME: Или мы хотим установить новую ошибку?

Чтобы сбросить ошибку, поток должен быть сброшен с помощью вызова gtk_media_stream_unprepared().

Параметры

self

объект GtkMediaStream

error

объект GError.

[transfer full]

gtk_media_stream_error ()

void
gtk_media_stream_error (GtkMediaStream *self,
                        GQuark domain,
                        int code,
                        const char *format,
                        ...);

Устанавливает self в состояние ошибки, используя строку формата в стиле printf().

Это вспомогательная функция, которая вызывает gtk_media_stream_gerror(). См. эту функцию для получения подробностей.

Параметры

self

объект GtkMediaStream

domain

область ошибки

code

код ошибки

format

строка формата в стиле printf() для сообщения об ошибке

...

параметры для формата сообщения

gtk_media_stream_error_valist ()

void
gtk_media_stream_error_valist (GtkMediaStream *self,
                               GQuark domain,
                               int code,
                               const char *format,
                               va_list args);

Устанавливает self в состояние ошибки, используя строку формата в стиле printf().

Это вспомогательная функция, которая вызывает gtk_media_stream_gerror(). См. эту функцию для получения подробностей.

Параметры

self

объект GtkMediaStream

domain

область ошибки

code

код ошибки

format

строка формата в стиле printf() для сообщения об ошибке

args

va_list параметров для формата сообщения

Типы и значения

GtkMediaStream

typedef struct _GtkMediaStream GtkMediaStream;

struct GtkMediaStreamClass

struct GtkMediaStreamClass {
  GObjectClass parent_class;

  gboolean              (* play)                                (GtkMediaStream *self);
  void                  (* pause)                               (GtkMediaStream *self);
  void                  (* seek)                                (GtkMediaStream *self,
                                                                 gint64          timestamp);
  void                  (* update_audio)                        (GtkMediaStream *self,
                                                                 gboolean        muted,
                                                                 double          volume);
  void                  (* realize)                             (GtkMediaStream *self,
                                                                 GdkSurface      *surface);
  void                  (* unrealize)                           (GtkMediaStream *self,
                                                                 GdkSurface      *surface);

  /* Padding for future expansion */
  void (*_gtk_reserved1) (void);
  void (*_gtk_reserved2) (void);
  void (*_gtk_reserved3) (void);
  void (*_gtk_reserved4) (void);
  void (*_gtk_reserved5) (void);
  void (*_gtk_reserved6) (void);
  void (*_gtk_reserved7) (void);
  void (*_gtk_reserved8) (void);
};

Подробное описание свойств

Свойство “duration”

  “duration”                 gint64

Продолжительность потока в микросекундах или 0, если неизвестна.

Владелец: GtkMediaStream

Флаги: Чтение

Допустимые значения: >= 0

Значение по умолчанию: 0

Свойство “ended”

  “ended”                    gboolean

Устанавливается, когда воспроизведение завершено.

Владелец: GtkMediaStream

Флаги: Чтение

Значение по умолчанию: FALSE

Свойство “error”

  “error”                    GError *

NULL для правильно работающего потока или GError, в котором находится поток.

Владелец: GtkMediaStream

Флаги: Чтение

Свойство “has-audio”

  “has-audio”                gboolean

Содержит ли поток аудио

Владелец: GtkMediaStream

Флаги: Чтение

Значение по умолчанию: FALSE

Свойство “has-video”

  “has-video”                gboolean

Содержит ли поток видео

Владелец: GtkMediaStream

Флаги: Чтение

Значение по умолчанию: FALSE

Свойство “loop”

  “loop”                     gboolean

Попытаться перезапустить медиа с начала, после того как оно закончилось.

Владелец: GtkMediaStream

Флаги: Чтение/Запись

Значение по умолчанию: FALSE

Свойство “muted”

  “muted”                    gboolean

Должен ли аудиопоток быть выключен.

Владелец: GtkMediaStream

Флаги: Чтение/Запись

Значение по умолчанию: FALSE

Свойство “playing”

  “playing”                  gboolean

Сейчас ли поток воспроизводится.

Владелец: GtkMediaStream

Флаги: Чтение/Запись

Значение по умолчанию: FALSE

Свойство “prepared”

  “prepared”                 gboolean

Завершил ли поток инициализацию и известны ли аудио и видео.

Владелец: GtkMediaStream

Флаги: Чтение/Запись

Значение по умолчанию: FALSE

Свойство “seekable”

  “seekable”                 gboolean

Устанавливается, если известно, что поток поддерживает поиск.

Владелец: GtkMediaStream

Флаги: Чтение

Значение по умолчанию: TRUE

Свойство “seeking”

  “seeking”                  gboolean

Устанавливается во время поиска.

Владелец: GtkMediaStream

Флаги: Чтение

Значение по умолчанию: FALSE

Свойство “timestamp”

  “timestamp”                gint64

Текущая временная метка представления в микросекундах.

Владелец: GtkMediaStream

Флаги: Чтение

Допустимые значения: >= 0

Значение по умолчанию: 0

Свойство “volume”

  “volume”                   double

Громкость аудиопотока.

Владелец: GtkMediaStream

Флаги: Чтение/Запись

Допустимые значения: [0,1]

Значение по умолчанию: 1

См. также

GdkPaintable, GtkMediaFile

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer-old.gnome.org/gtk4/4.0/GtkMediaStream.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API