Phonon Namespace Reference

Phonon Namespace Reference

Namespace description

The KDE Multimedia classes.

In this Namespace you find the classes to access Multimedia functions for audio and video playback. Those classes are not dependent on any specific framework (like they were in pre KDE4 times) but rather use exchangeable backends to do the work.

If you want to write a new backend take a look at phonon_backend_development_page.

Author
Matthias Kretz kretz.nosp@m.@kde.nosp@m..org

Namespaces

 BackendCapabilities
 Collection of functions describing the capabilities of the Backend.
 
 Experimental
 

Classes

class  AbstractAudioOutput
 Common base class for all audio outputs. More...
 
class  AbstractMediaStream
 Base class for custom media data streams. More...
 
class  AbstractVideoOutput
 Common base class for all video outputs. More...
 
class  AddonInterface
 Interface for Menu, Chapter, Angle and Title/Track control. More...
 
class  AudioDataOutput
 This class gives you the audio data (for visualizations). More...
 
class  AudioDataOutputInterface
 
class  AudioOutput
 Class for audio output to the soundcard. More...
 
class  AudioOutputInterface40
 
class  AudioOutputInterface42
 
class  BackendInterface
 Main Backend class interface. More...
 
class  Effect
 Effects that can be inserted into a Path. More...
 
class  EffectInterface
 Interface for Effect objects. More...
 
class  EffectParameter
 This class describes one parameter of an effect. More...
 
class  EffectWidget
 Widget to control the parameters of an Effect. More...
 
class  GlobalConfig
 
class  MediaController
 Controls optional features of a media file/device like title, chapter, angle. More...
 
class  MediaNode
 
class  MediaObject
 Interface for media playback of a given URL. More...
 
class  MediaObjectInterface
 Backend interface for media sources. More...
 
class  MediaSource
 Note that all constructors of this class are implicit, so that you can simply write. More...
 
class  ObjectDescription
 Provides a tuple of enduser visible name and description. More...
 
class  ObjectDescriptionData
 Data class for objects describing devices or features of the backend. More...
 
class  ObjectDescriptionModel
 The ObjectDescriptionModel class provides a model from a list of ObjectDescription objects. More...
 
class  ObjectDescriptionModelData
 Data class for models for ObjectDescription objects. More...
 
class  Path
 Connection object providing convenient effect insertion. More...
 
class  PlatformPlugin
 
class  PulseSupport
 
class  SeekSlider
 Widget providing a slider for seeking in MediaObject objects. More...
 
class  StreamInterface
 Backend interface to handle media streams (AbstractMediaStream). More...
 
class  VideoPlayer
 Playback class for simple tasks. More...
 
class  VideoWidget
 Widget to display video. More...
 
class  VideoWidgetInterface
 
class  VideoWidgetInterface44
 
class  VolumeFaderEffect
 Audio effect to gradually fade the audio volume. More...
 
class  VolumeFaderInterface
 
class  VolumeSlider
 Widget providing a slider to control the volume of an AudioOutput. More...
 

Typedefs

typedef AudioOutputInterface40 AudioOutputInterface
 
typedef ObjectDescription< AudioOutputDeviceTypeAudioOutputDevice
 
typedef ObjectDescription< AudioCaptureDeviceTypeAudioCaptureDevice
 
typedef ObjectDescription< EffectTypeEffectDescription
 
typedef ObjectDescription< AudioChannelTypeAudioChannelDescription
 
typedef ObjectDescription< SubtitleTypeSubtitleDescription
 
typedef ObjectDescriptionModel< AudioOutputDeviceTypeAudioOutputDeviceModel
 
typedef ObjectDescriptionModel< AudioCaptureDeviceTypeAudioCaptureDeviceModel
 
typedef ObjectDescriptionModel< EffectTypeEffectDescriptionModel
 
typedef ObjectDescriptionModel< AudioChannelTypeAudioChannelDescriptionModel
 
typedef ObjectDescriptionModel< SubtitleTypeSubtitleDescriptionModel
 
typedef VideoWidgetInterface VideoWidgetInterfaceLatest
 

Enumerations

enum  ObjectDescriptionType {
  AudioOutputDeviceType, EffectType, AudioChannelType, SubtitleType,
  AudioCaptureDeviceType
}
 Defines the type of information that is contained in a ObjectDescription object. More...
 
enum  DiscType { NoDisc = -1, Cd = 0, Dvd = 1, Vcd = 2 }
 Enum to identify the media discs supported by MediaObject. More...
 
enum  MetaData {
  ArtistMetaData, AlbumMetaData, TitleMetaData, DateMetaData,
  GenreMetaData, TracknumberMetaData, DescriptionMetaData, MusicBrainzDiscIdMetaData
}
 Provided as keys for MediaObject::metaData for convenience, in addition to the strings defined in the Ogg Vorbis specification. More...
 
enum  State {
  LoadingState, StoppedState, PlayingState, BufferingState,
  PausedState, ErrorState
}
 The state the media producing object is in at the moment. More...
 
enum  Category {
  NoCategory = -1, NotificationCategory = 0, MusicCategory = 1, VideoCategory = 2,
  CommunicationCategory = 3, GameCategory = 4, AccessibilityCategory = 5, LastCategory = AccessibilityCategory
}
 Set's the category your program should be listed in in the mixer. More...
 
enum  ErrorType { NoError = 0, NormalError = 1, FatalError = 2 }
 Tells your program how to recover from an error. More...
 

Functions

uint PHONON_EXPORT qHash (const Phonon::EffectParameter &param)
 
PHONON_EXPORT MediaObjectcreatePlayer (Phonon::Category category, const MediaSource &source=MediaSource())
 Convenience function to create a MediaObject and AudioOutput connected by a path. More...
 
template<ObjectDescriptionType T>
QDebug operator<< (QDebug s, const ObjectDescription< T > &o)
 
PHONON_EXPORT const char * phononVersion ()
 
PHONON_EXPORT QString categoryToString (Category c)
 Returns a (translated) string to show to the user identifying the given Category. More...
 

Typedef Documentation

Enumeration Type Documentation

Defines the type of information that is contained in a ObjectDescription object.

Enumerator
AudioOutputDeviceType 

Audio output devices.

This can be soundcards (with different drivers), soundservers or other virtual outputs like playback on a different computer on the network.

For Hardware devices the backend should use libkaudiodevicelist (AudioDevice and AudioDeviceEnumerator) which will list removable devices even when they are unplugged and provide a unique identifier that can make backends use the same identifiers.

EffectType 

Lists all processing effects the backend supports.

AudioChannelType 
SubtitleType 
AudioCaptureDeviceType 

Audio capture devices.

This can be soundcards (with different drivers), soundservers or other virtual inputs like capture on a different computer on the network.

For Hardware devices the backend should use libkaudiodevicelist (AudioDevice and AudioDeviceEnumerator) which will list removable devices even when they are unplugged and provide a unique identifier that can make backends use the same identifiers.

Definition at line 48 of file objectdescription.h.

49  {
61 
65  EffectType,
68 
80 
81  //VideoOutputDeviceType,
82  //VideoCaptureDeviceType,
83  //AudioCodecType,
84  //VideoCodecType,
85  //ContainerFormatType,
86  //VisualizationType,
87  };
Lists all processing effects the backend supports.
Audio output devices.
Audio capture devices.
enum DiscType

Enum to identify the media discs supported by MediaObject.

See also
MediaSource(Phonon::DiscType, const QString &deviceName)
Enumerator
NoDisc 

No disc was selected.

This is only useful as a return value from MediaSource::distType();

Cd 

Identifies Audio CDs.

Dvd 

Identifies DVDs (not arbitrary data DVDs, only movie DVDs).

Vcd 

Identifies Video CDs.

Definition at line 77 of file phononnamespace.h.

77  {
82  NoDisc = -1,
86  Cd = 0,
90  Dvd = 1,
94  Vcd = 2
95  };
No disc was selected.
Identifies Video CDs.
Identifies DVDs (not arbitrary data DVDs, only movie DVDs).
Identifies Audio CDs.
enum MetaData

Provided as keys for MediaObject::metaData for convenience, in addition to the strings defined in the Ogg Vorbis specification.

Enumerator
ArtistMetaData 

The artist generally considered responsible for the work.

In popular music this is usually the performing band or singer. For classical music it would be the composer. For an audio book it would be the author of the original text.

AlbumMetaData 

The collection name to which this track belongs.

TitleMetaData 

Track/Work name.

DateMetaData 

Date the track was recorded.

GenreMetaData 

A short text indication of music genre.

TracknumberMetaData 

The track number of this piece if part of a specific larger collection or album.

DescriptionMetaData 

A short text description of the contents.

MusicBrainzDiscIdMetaData 
+ Examples:

Definition at line 101 of file phononnamespace.h.

101  {
120  DateMetaData,
135  };
The artist generally considered responsible for the work.
A short text description of the contents.
The track number of this piece if part of a specific larger collection or album.
A short text indication of music genre.
The collection name to which this track belongs.
Date the track was recorded.
Track/Work name.
enum State

The state the media producing object is in at the moment.

See also
MediaObject
Enumerator
LoadingState 

After construction it might take a while before the Player is ready to play().

Normally this doesn't happen for local files, but can happen for remote files where the asynchronous mimetype detection and prebuffering can take a while.

StoppedState 

The Player has a valid media file loaded and is ready for playing.

PlayingState 

The Player is playing a media file.

BufferingState 

The Player is waiting for data to be able to continue playing.

PausedState 

The Player is currently paused.

ErrorState 

An unrecoverable error occurred.

The Object is unusable in this state.

Definition at line 142 of file phononnamespace.h.

143  {
150  LoadingState,
155  StoppedState,
159  PlayingState,
168  PausedState,
172  ErrorState
173  };
The Player has a valid media file loaded and is ready for playing.
The Player is waiting for data to be able to continue playing.
The Player is playing a media file.
After construction it might take a while before the Player is ready to play().
An unrecoverable error occurred.
The Player is currently paused.
enum Category

Set's the category your program should be listed in in the mixer.

A Jukebox will set this to Music, a VoIP program to Communication, a DVD player to video, and so on.

Note
These categories can also become useful for an application that controls the volumes automatically, like turning down the music when a call comes in, or turning down the notifications when the media player knows it's playing classical music.
See also
AudioOutput::setCategory
Enumerator
NoCategory 

Will make use of the default device.

NotificationCategory 

If the sounds produced are notifications (bing, beep and such) you should use this category.

MusicCategory 

If your application is a music player (like a jukebox or media player playing an audio file).

VideoCategory 

If the sound is the audio channel of a video.

CommunicationCategory 

If your applications produces sounds from communication with somebody else (VoIP, voice chat).

GameCategory 

Sound produced by a computer game should go into this category.

AccessibilityCategory 

Sounds produced for accessibility (e.g.

Text-To-Speech)

LastCategory 

Holds the largest value of categories.

Definition at line 188 of file phononnamespace.h.

189  {
193  NoCategory = -1,
203  MusicCategory = 1,
207  VideoCategory = 2,
216  GameCategory = 4,
226  };
Will make use of the default device.
Sounds produced for accessibility (e.g.
Sound produced by a computer game should go into this category.
If the sounds produced are notifications (bing, beep and such) you should use this category...
If your applications produces sounds from communication with somebody else (VoIP, voice chat)...
If the sound is the audio channel of a video.
If your application is a music player (like a jukebox or media player playing an audio file)...
enum ErrorType

Tells your program how to recover from an error.

See also
MediaObject::errorType()
Enumerator
NoError 

No error.

MediaObject::errorType() returns this if MediaObject::state() != Phonon::ErrorState.

NormalError 

Playback should work, and trying with another URL should work.

FatalError 

Something important does not work.

Your program cannot continue playback or capture or whatever it was trying to do without help from the user.

Definition at line 233 of file phononnamespace.h.

233  {
238  NoError = 0,
242  NormalError = 1,
248  FatalError = 2
249  };
Playback should work, and trying with another URL should work.
Something important does not work.

Function Documentation

uint PHONON_EXPORT Phonon::qHash ( const Phonon::EffectParameter param)
PHONON_EXPORT MediaObject* Phonon::createPlayer ( Phonon::Category  category,
const MediaSource source = MediaSource() 
)

Convenience function to create a MediaObject and AudioOutput connected by a path.

QDebug Phonon::operator<< ( QDebug  s,
const ObjectDescription< T > &  o 
)
inline

Definition at line 264 of file objectdescription.h.

265 {
266  return s << o.name();
267 }
PHONON_EXPORT const char* Phonon::phononVersion ( )
PHONON_EXPORT QString Phonon::categoryToString ( Category  c)

Returns a (translated) string to show to the user identifying the given Category.