首次推送

This commit is contained in:
sansen
2026-07-20 19:01:03 +08:00
parent ea01b9cf99
commit ef1bf61f9f
4484 changed files with 937163 additions and 1 deletions
@@ -0,0 +1,237 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../">
<head>
<meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Initializing devices &mdash; TeamSpeak SDK documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=9edc463e" />
<script src="../_static/jquery.js?v=5d32c60e"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
<script src="../_static/documentation_options.js?v=7f41d439"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Query current mode and device" href="audio-get-current.html" />
<link rel="prev" title="List available modes and devices" href="audio-list-device-mode.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home">
TeamSpeak SDK
<img src="../_static/logo.png" class="logo" alt="Logo"/>
</a>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<p class="caption" role="heading"><span class="caption-text">API</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../errors.html">TeamSpeak Error Codes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../properties.html">Property Enums</a></li>
<li class="toctree-l1"><a class="reference internal" href="../enumerations.html">Structures &amp; Enumerations</a></li>
<li class="toctree-l1"><a class="reference internal" href="../client_api.html">TeamSpeak Client Functions</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server_api.html">TeamSpeak Server Functions</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Server</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../server/intro.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server/basic.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server/list-items.html">List available clients, channels, servers</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server/vserver-manage.html">Create and stop virtual servers</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server/advanced-create.html">Advanced virtual server creation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server/info.html">Retrieve and store information</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server/channels.html">Managing channels</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server/clients.html">Managing clients</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server/whisper.html">Whisper lists</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server/encryption.html">Custom encryption</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server/passwords.html">Custom passwords</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server/permissions.html">Permission checks</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server/security-salt.html">Security salts and hashes</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server/disable-commands.html">Disabling protocol commands</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server/filetransfer.html">Filetransfer</a></li>
<li class="toctree-l1"><a class="reference internal" href="../server/faq.html">FAQ</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Client</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="intro.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="basic.html">Getting started</a></li>
<li class="toctree-l1"><a class="reference internal" href="connections.html">Managing server connections</a></li>
<li class="toctree-l1"><a class="reference internal" href="logging.html">Logging</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="audio.html">Client Audio</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="audio-list-device-mode.html">List available modes and devices</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Initializing devices</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#playback">Playback</a></li>
<li class="toctree-l3"><a class="reference internal" href="#capture">Capture</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="audio-get-current.html">Query current mode and device</a></li>
<li class="toctree-l2"><a class="reference internal" href="audio-custom-device.html">Using custom devices</a></li>
<li class="toctree-l2"><a class="reference internal" href="audio-activate.html">Activating the capture device</a></li>
<li class="toctree-l2"><a class="reference internal" href="audio-close.html">Closing devices</a></li>
<li class="toctree-l2"><a class="reference internal" href="audio-codecs.html">Audio codecs</a></li>
<li class="toctree-l2"><a class="reference internal" href="encoder.html">Encoder options</a></li>
<li class="toctree-l2"><a class="reference internal" href="preprocessor.html">Preprocessor options</a></li>
<li class="toctree-l2"><a class="reference internal" href="playback-options.html">Playback options</a></li>
<li class="toctree-l2"><a class="reference internal" href="audio-buffer-access.html">Accessing the voice buffer</a></li>
<li class="toctree-l2"><a class="reference internal" href="audio-localtest.html">Local Test mode</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="wave-files.html">Playing wave files</a></li>
<li class="toctree-l1"><a class="reference internal" href="3dsound.html">3D Sound</a></li>
<li class="toctree-l1"><a class="reference internal" href="whisper.html">Whisper lists</a></li>
<li class="toctree-l1"><a class="reference internal" href="voice-encryption.html">Channel voice data encryption</a></li>
<li class="toctree-l1"><a class="reference internal" href="info.html">Retrieve and store information</a></li>
<li class="toctree-l1"><a class="reference internal" href="channels.html">Channel Management</a></li>
<li class="toctree-l1"><a class="reference internal" href="client-list.html">List clients</a></li>
<li class="toctree-l1"><a class="reference internal" href="client-kick.html">Kicking clients</a></li>
<li class="toctree-l1"><a class="reference internal" href="local-mute.html">Muting other clients</a></li>
<li class="toctree-l1"><a class="reference internal" href="textmessages.html">Text chat</a></li>
<li class="toctree-l1"><a class="reference internal" href="filetransfer.html">Filetransfer</a></li>
<li class="toctree-l1"><a class="reference internal" href="encryption.html">Custom encryption</a></li>
<li class="toctree-l1"><a class="reference internal" href="passwords.html">Custom passwords</a></li>
<li class="toctree-l1"><a class="reference internal" href="faq.html">FAQ</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">TeamSpeak SDK</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="audio.html">Client Audio</a></li>
<li class="breadcrumb-item active">Initializing devices</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="initializing-devices">
<h1>Initializing devices<a class="headerlink" href="#initializing-devices" title="Link to this heading"></a></h1>
<p>Before a device can be used for playback or capture, you have to
initialize and open the device.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Only one device can be active simultaneously per type.</p>
<p>You cannot have more than one playback device or more than one capture device
open at any given time. You can have up to one playback and up to one capture
device open simultaneously.</p>
</div>
<p>Likely errors are <a class="reference internal" href="../errors.html#c.Ts3ErrorType.ERROR_sound_could_not_open_capture_device" title="Ts3ErrorType.ERROR_sound_could_not_open_capture_device"><code class="xref c c-enumerator docutils literal notranslate"><span class="pre">ERROR_sound_could_not_open_capture_device</span></code></a>
if the device fails to open or <a class="reference internal" href="../errors.html#c.Ts3ErrorType.ERROR_sound_handler_has_device" title="Ts3ErrorType.ERROR_sound_handler_has_device"><code class="xref c c-enumerator docutils literal notranslate"><span class="pre">ERROR_sound_handler_has_device</span></code></a>
if there is already an open device on the connection.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>If you want to switch devices on a connection,
<a class="reference internal" href="audio-close.html#c-close-device"><span class="std std-ref">close the current device</span></a> first, then
open the new one.</p>
</div>
<section id="playback">
<h2>Playback<a class="headerlink" href="#playback" title="Link to this heading"></a></h2>
<p>To initialize a playback device on a connection call</p>
<dl class="c function">
<dt class="sig sig-object c">
<span class="kt"><span class="pre">unsigned</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ts3client_openPlaybackDevice</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint64</span></span><span class="w"> </span><span class="n"><span class="pre">serverConnectionHandlerID</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">modeID</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">playbackDevice</span></span><span class="sig-paren">)</span><br /></dt>
<dd><p>initializes a playback device for a connection handler </p>
<p>Call this function to start audio playback of TeamSpeak audio on a connection</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>serverConnectionHandlerID</strong> the connection handler on which to initialize the specified device </p></li>
<li><p><strong>modeID</strong> utf8 encoded c-string containing the mode to open the device in. Pass an empty string to use the default mode. See <a class="reference internal" href="../client_api.html#clientlib_8h_1a9f9bfb5ed20220a15be6ce0e3d402395"><span class="std std-ref">ts3client_getPlaybackModeList</span></a> and <a class="reference internal" href="../client_api.html#clientlib_8h_1a062eef0dd3259a8af7f750fe5dd3bed0"><span class="std std-ref">ts3client_getDefaultPlayBackMode</span></a> for a list of valid modes. </p></li>
<li><p><strong>playbackDevice</strong> utf8 encoded c-string containing the device name of the device to open. Pass an empty string to use the default device. See <a class="reference internal" href="../client_api.html#clientlib_8h_1a30403c62cf44a6ec5b047cb0bc55421f"><span class="std std-ref">ts3client_getPlaybackDeviceList</span></a> and <a class="reference internal" href="../client_api.html#clientlib_8h_1a6f3ff3577b71654832fa1e5a843ff8b1"><span class="std std-ref">ts3client_getDefaultPlaybackDevice</span></a> for valid devices. </p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>An Error code from the <a class="reference internal" href="../errors.html#public__errors_8h_1a0bcf1e0a5e32989890f6e85064327f7b"><span class="std std-ref">Ts3ErrorType</span></a> enum indicating either success or the failure reason </p>
</dd>
</dl>
</dd></dl>
</section>
<section id="capture">
<h2>Capture<a class="headerlink" href="#capture" title="Link to this heading"></a></h2>
<p>To initialize a capture device on a connection call</p>
<dl class="c function">
<dt class="sig sig-object c">
<span class="kt"><span class="pre">unsigned</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ts3client_openCaptureDevice</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint64</span></span><span class="w"> </span><span class="n"><span class="pre">serverConnectionHandlerID</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">modeID</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n"><span class="pre">captureDevice</span></span><span class="sig-paren">)</span><br /></dt>
<dd><p>initializes a capture device for a connection handler </p>
<p>Call this function to start consuming audio from the specified device and send it to the server</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>serverConnectionHandlerID</strong> the connection handler on which to open the capture device </p></li>
<li><p><strong>modeID</strong> utf8 encoded c-string containing the mode in which to open the device. Pass an empty string to use the default mode. See <a class="reference internal" href="../client_api.html#clientlib_8h_1a80712a74cde0cb73e2e30c0654994120"><span class="std std-ref">ts3client_getCaptureModeList</span></a> and <a class="reference internal" href="../client_api.html#clientlib_8h_1a79856dbbe99235a441a569af2449d526"><span class="std std-ref">ts3client_getDefaultCaptureMode</span></a> for a list of valid modes. </p></li>
<li><p><strong>captureDevice</strong> utf8 encoded c-string containing the device name of the device to open. Pass an empty string to use the default device. See <a class="reference internal" href="../client_api.html#clientlib_8h_1a6b4372879d6d45c5bba3f46e2329e8a3"><span class="std std-ref">ts3client_getCaptureDeviceList</span></a> and <a class="reference internal" href="../client_api.html#clientlib_8h_1a84e76960d5fce4c522d6c0895658fc02"><span class="std std-ref">ts3client_getDefaultCaptureDevice</span></a> for a list or valid devices. </p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>An Error code from the <a class="reference internal" href="../errors.html#public__errors_8h_1a0bcf1e0a5e32989890f6e85064327f7b"><span class="std std-ref">Ts3ErrorType</span></a> enum indicating either success or the failure reason </p>
</dd>
</dl>
</dd></dl>
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="audio-list-device-mode.html" class="btn btn-neutral float-left" title="List available modes and devices" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="audio-get-current.html" class="btn btn-neutral float-right" title="Query current mode and device" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2020, TeamSpeak Systems GmbH.</p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>