class Gtk::MediaFile

Overview

Gtk::MediaFile implements Gtk::MediaStream for files.

This provides a simple way to play back video files with GTK.

GTK provides a GIO extension point for Gtk::MediaFile implementations to allow for external implementations using various media frameworks.

GTK itself includes implementations using GStreamer and ffmpeg.

Included Modules

Defined in:

lib/gi-crystal/src/auto/gtk-4.0/media_file.cr

Constructors

Class Method Summary

Instance Method Summary

Instance methods inherited from module Gdk::Paintable

compute_concrete_size(specified_width : Float64, specified_height : Float64, default_width : Float64, default_height : Float64, concrete_width : Float64, concrete_height : Float64) : Nil compute_concrete_size, current_image : Gdk::Paintable current_image, flags : Gdk::PaintableFlags flags, intrinsic_aspect_ratio : Float64 intrinsic_aspect_ratio, intrinsic_height : Int32 intrinsic_height, intrinsic_width : Int32 intrinsic_width, invalidate_contents : Nil invalidate_contents, invalidate_contents_signal invalidate_contents_signal, invalidate_size : Nil invalidate_size, invalidate_size_signal invalidate_size_signal, snapshot(snapshot : Gdk::Snapshot, width : Float64, height : Float64) : Nil snapshot, to_unsafe to_unsafe

Class methods inherited from module Gdk::Paintable

g_type : UInt64 g_type, new_empty(intrinsic_width : Int32, intrinsic_height : Int32) : Gdk::Paintable new_empty

Instance methods inherited from class Gtk::MediaStream

duration : Int64 duration, ended : Bool ended, ended? : Bool ended?, error : GLib::Error? error, gerror(error : GLib::Error) : Nil gerror, has_audio : Bool has_audio, has_audio? : Bool has_audio?, has_video : Bool has_video, has_video? : Bool has_video?, is_prepared : Bool is_prepared, is_seekable : Bool is_seekable, is_seeking : Bool is_seeking, loop : Bool loop, loop=(loop : Bool) : Nil loop=, loop? : Bool loop?, muted : Bool muted, muted=(muted : Bool) : Nil muted=, muted? : Bool muted?, pause : Nil pause, play : Nil play, playing : Bool playing, playing=(playing : Bool) : Nil playing=, playing? : Bool playing?, prepared=(value : Bool) : Bool prepared=, prepared? : Bool prepared?, realize(surface : Gdk::Surface) : Nil realize, seek(timestamp : Int64) : Nil seek, seek_failed : Nil seek_failed, seek_success : Nil seek_success, seekable? : Bool seekable?, seeking? : Bool seeking?, stream_ended : Nil stream_ended, stream_prepared(has_audio : Bool, has_video : Bool, seekable : Bool, duration : Int64) : Nil stream_prepared, stream_unprepared : Nil stream_unprepared, timestamp : Int64 timestamp, unrealize(surface : Gdk::Surface) : Nil unrealize, update(timestamp : Int64) : Nil update, volume : Float64 volume, volume=(volume : Float64) : Nil volume=

Constructor methods inherited from class Gtk::MediaStream

new
new(*, duration : Int64? = nil, ended : Bool? = nil, error : GLib::Error? = nil, has_audio : Bool? = nil, has_video : Bool? = nil, loop : Bool? = nil, muted : Bool? = nil, playing : Bool? = nil, prepared : Bool? = nil, seekable : Bool? = nil, seeking : Bool? = nil, timestamp : Int64? = nil, volume : Float64? = nil)
new

Class methods inherited from class Gtk::MediaStream

g_type : UInt64 g_type

Instance methods inherited from module Gdk::Paintable

compute_concrete_size(specified_width : Float64, specified_height : Float64, default_width : Float64, default_height : Float64, concrete_width : Float64, concrete_height : Float64) : Nil compute_concrete_size, current_image : Gdk::Paintable current_image, flags : Gdk::PaintableFlags flags, intrinsic_aspect_ratio : Float64 intrinsic_aspect_ratio, intrinsic_height : Int32 intrinsic_height, intrinsic_width : Int32 intrinsic_width, invalidate_contents : Nil invalidate_contents, invalidate_contents_signal invalidate_contents_signal, invalidate_size : Nil invalidate_size, invalidate_size_signal invalidate_size_signal, snapshot(snapshot : Gdk::Snapshot, width : Float64, height : Float64) : Nil snapshot, to_unsafe to_unsafe

Class methods inherited from module Gdk::Paintable

g_type : UInt64 g_type, new_empty(intrinsic_width : Int32, intrinsic_height : Int32) : Gdk::Paintable new_empty

Instance methods inherited from class GObject::Object

bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding bind_property, bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding bind_property_full, data(key : String) : Pointer(Void)? data, finalize finalize, freeze_notify : Nil freeze_notify, getv(names : Enumerable(String), values : Enumerable(_)) : Nil getv, notify(property_name : String) : Nil notify, notify_by_pspec(pspec : GObject::ParamSpec) : Nil notify_by_pspec, notify_signal notify_signal, property(property_name : String, value : _) : Nil property, qdata(quark : UInt32) : Pointer(Void)? qdata, ref_count : UInt32 ref_count, run_dispose : Nil run_dispose, set_data(key : String, data : Pointer(Void)?) : Nil set_data, set_property(property_name : String, value : _) : Nil set_property, steal_data(key : String) : Pointer(Void)? steal_data, steal_qdata(quark : UInt32) : Pointer(Void)? steal_qdata, thaw_notify : Nil thaw_notify, to_unsafe : Pointer(Void) to_unsafe, watch_closure(closure : GObject::Closure) : Nil watch_closure

Constructor methods inherited from class GObject::Object

cast(obj : GObject::Object) : self cast, cast?(obj : GObject::Object) : self? cast?, new(pointer : Pointer(Void), transfer : GICrystal::Transfer)
new
new
, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv

Class methods inherited from class GObject::Object

compat_control(what : UInt64, data : Pointer(Void)?) : UInt64 compat_control, g_type : UInt64 g_type, interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec interface_find_property, interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec) interface_list_properties

Constructor Detail

def self.new : self #

Creates a new empty media file.


def self.new(*, duration : Int64? = nil, ended : Bool? = nil, error : GLib::Error? = nil, file : Gio::File? = nil, has_audio : Bool? = nil, has_video : Bool? = nil, input_stream : Gio::InputStream? = nil, loop : Bool? = nil, muted : Bool? = nil, playing : Bool? = nil, prepared : Bool? = nil, seekable : Bool? = nil, seeking : Bool? = nil, timestamp : Int64? = nil, volume : Float64? = nil) #

def self.new_for_file(file : Gio::File) : self #

Creates a new media file to play @file.


def self.new_for_filename(filename : String) : self #

Creates a new media file for the given filename.

This is a utility function that converts the given @filename to a GFile and calls Gtk::MediaFile#new_for_file.


def self.new_for_input_stream(stream : Gio::InputStream) : self #

Creates a new media file to play @stream.

If you want the resulting media to be seekable, the stream should implement the GSeekable interface.


def self.new_for_resource(resource_path : String) : self #

Creates a new new media file for the given resource.

This is a utility function that converts the given @resource to a GFile and calls Gtk::MediaFile#new_for_file.


Class Method Detail

def self.g_type : UInt64 #

Returns the type id (GType) registered in GLib type system.


Instance Method Detail

def clear : Nil #

Resets the media file to be empty.


def file : Gio::File? #

Returns the file that @self is currently playing from.

When @self is not playing or not playing from a file, nil is returned.


def file=(file : Gio::File?) : Nil #

Sets the Gtk::MediaFile to play the given file.

If any file is still playing, stop playing it.


def filename=(filename : String?) : Nil #

Sets the `Gtk::MediaFile to play the given file.

This is a utility function that converts the given @filename to a GFile and calls Gtk::MediaFile#file=.


def input_stream : Gio::InputStream? #

Returns the stream that @self is currently playing from.

When @self is not playing or not playing from a stream, nil is returned.


def input_stream=(stream : Gio::InputStream?) : Nil #

Sets the Gtk::MediaFile to play the given stream.

If anything is still playing, stop playing it.

Full control about the @stream is assumed for the duration of playback. The stream will not be closed.


def resource=(resource_path : String?) : Nil #

Sets the `Gtk::MediaFile to play the given resource.

This is a utility function that converts the given @resource_path to a GFile and calls Gtk::MediaFile#file=.