<sect1 id="howto-slaves">
<title>Playing from &kde; I/O Slaves</title>

<sect2 id="howto-slaves-about">
<title>What are &kde; I/O Slaves</title>

<para>&kde; has a great way to access all kinds of data through a system known
as <acronym>I/O</acronym> Slaves. They are little programs that let you
represent many different sources of data as <acronym>URL</acronym> like
addresses, and open them in &kde; programs like &konqueror; and &kplayer;. For
example you can access a network host over <acronym>SSH</acronym> with a
<acronym>URL</acronym> like <filename>fish:/host/path/</filename>, or a zip file
with <filename>zip:/home/cooldude/my.zip</filename>.</para>

</sect2>

<sect2 id="howto-slaves-using">
<title>How &kplayer; uses them</title>

<para>Many of the &kde; <acronym>I/O</acronym> Slaves can return video and audio
files and streams, for example <literal>fish:</literal>,
<literal>sftp:</literal>, <literal>webdav:</literal>, <literal>tar:</literal>,
<literal>zip:</literal>, <literal>audiocd:</literal> and so on. &kplayer; will
play them just like any other type of file. By default it will pass the data
directly to &mplayer; through a named pipe. If that does not work for any
reason, you can tell &kplayer; to use a temporary file for playing from &kde;
<acronym>I/O</acronym> Slaves on the <guilabel>Advanced</guilabel> page either
globally in <link linkend="settings-advanced">&kplayer; Settings</link> or in
individual <link linkend="properties-advanced">File Properties</link>. &kplayer;
will then download the entire file into a temporary directory before playing it,
which will consume some disk space temporarily, but will allow seeking and
length detection.</para>

<para>Note that using the <literal>audiocd</literal> slave is not recommended.
Instead you should use &kplayer;'s own support for disk devices. It will detect
an audio <acronym>CD</acronym>, find audio tracks on it and list them on a
<link linkend="submenu-device">submenu</link> under the <guimenu>File</guimenu>
menu for easy playback, and will also try to retrieve the disk and track titles
from an online database.</para>

</sect2>

<sect2 id="howto-slaves-http">
<title>HTTP, FTP and Samba</title>

<para>The best way to play <acronym>URL</acronym>s that
<link linkend="howto-installation-mplayer">&mplayer;</link> supports is by
passing them on to &mplayer; directly. But if &mplayer; cannot play an
<acronym>HTTP</acronym>, <acronym>FTP</acronym> or Samba <acronym>URL</acronym>
for any reason, you have the option to tell &kplayer; to use a &kde;
<acronym>I/O</acronym> Slave. You can do that on the
<guilabel>Advanced</guilabel> page either for that individual
<acronym>URL</acronym> in its <link linkend="properties-advanced">File
Properties</link> or globally for all <acronym>URL</acronym>s of a particular
type in <link linkend="settings-advanced">&kplayer; Settings</link>.</para>

</sect2>

<sect2 id="howto-slaves-cache">
<title>Cache size</title>

<para>When playing directly from a &kde; <acronym>I/O</acronym> Slave, the
<guilabel>Cache</guilabel> setting is important. It should not be too small so
&mplayer; can detect the encoding type without discarding data, but on the other
hand with large values it will take longer to fill the cache, especially with
low bitrate streams like <link linkend="howto-streams">online radio
stations</link>.</para>

<para>&kplayer; lets &mplayer; choose an optimal cache by default, but if you
experience problems, you can try a cache size setting of one megabyte. The cache
size can be set on the <guilabel>Advanced</guilabel> page either globally in
<link linkend="settings-advanced">&kplayer; Settings</link> or in individual
<link linkend="properties-advanced">File Properties</link>. Keep in mind that
the global setting will also affect files played directly by &mplayer;, and
changing it can cause unwanted side effects.</para>

</sect2>

<sect2 id="howto-slaves-playlists">
<title>Playlist files</title>

<para>When using a &kde; <acronym>I/O</acronym> Slave to play a playlist file,
only the playlist file itself will be retrieved from the
<acronym>I/O</acronym> Slave. All the <acronym>URL</acronym>s it contains will
be played by &mplayer; directly. You have to give &kplayer; the
<acronym>URL</acronym> contained in the playlist if you want it to be played
through an <acronym>I/O</acronym> Slave.</para>

</sect2>

</sect1>
