📄 sound.html
字号:
<?xml version="1.0" ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<!-- saved from url=(0017)http://localhost/ -->
<script language="JavaScript" src="../../displayToc.js"></script>
<script language="JavaScript" src="../../tocParas.js"></script>
<script language="JavaScript" src="../../tocTab.js"></script>
<link rel="stylesheet" type="text/css" href="../../scineplex.css">
<title>Win32::Sound - An extension to play with Windows sounds</title>
<link rel="stylesheet" href="../../Active.css" type="text/css" />
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<link rev="made" href="mailto:" />
</head>
<body>
<script>writelinks('__top__',2);</script>
<h1><a>Win32::Sound - An extension to play with Windows sounds</a></h1>
<p><a name="__index__"></a></p>
<!-- INDEX BEGIN -->
<ul>
<li><a href="#name">NAME</a></li>
<li><a href="#synopsis">SYNOPSIS</a></li>
<li><a href="#functions">FUNCTIONS</a></li>
<li><a href="#the_waveout_package">THE WaveOut PACKAGE</a></li>
<ul>
<li><a href="#functions">FUNCTIONS</a></li>
<li><a href="#the_sound_format">THE SOUND FORMAT</a></li>
<li><a href="#example">EXAMPLE</a></li>
</ul>
<li><a href="#version">VERSION</a></li>
<li><a href="#author">AUTHOR</a></li>
</ul>
<!-- INDEX END -->
<hr />
<p>
</p>
<h1><a name="name">NAME</a></h1>
<p>Win32::Sound - An extension to play with Windows sounds</p>
<p>
</p>
<hr />
<h1><a name="synopsis">SYNOPSIS</a></h1>
<pre>
<span class="keyword">use</span> <span class="variable">Win32::Sound</span><span class="operator">;</span>
<span class="variable">Win32::Sound::Volume</span><span class="operator">(</span><span class="string">'100%'</span><span class="operator">);</span>
<span class="variable">Win32::Sound::Play</span><span class="operator">(</span><span class="string">"file.wav"</span><span class="operator">);</span>
<span class="variable">Win32::Sound::Stop</span><span class="operator">();</span>
</pre>
<pre>
<span class="comment"># ...and read on for more fun ;-)</span>
</pre>
<p>
</p>
<hr />
<h1><a name="functions">FUNCTIONS</a></h1>
<dl>
<dt><strong><a name="item_play"><strong>Win32::Sound::Play(SOUND, [FLAGS])</strong></a></strong>
<dd>
<p>Plays the specified sound: SOUND can the be name of a WAV file
or one of the following predefined sound names:</p>
</dd>
<dd>
<pre>
SystemDefault
SystemAsterisk
SystemExclamation
SystemExit
SystemHand
SystemQuestion
SystemStart</pre>
</dd>
<dd>
<p>Additionally, if the named sound could not be found, the
function plays the system default sound (unless you specify the
<a href="#item_snd_nodefault"><code>SND_NODEFAULT</code></a> flag). If no parameters are given, this function
stops the sound actually playing (see also Win32::Sound::Stop).</p>
</dd>
<dd>
<p>FLAGS can be a combination of the following constants:</p>
</dd>
<dl>
<dt><strong><a name="item_snd_async"><code>SND_ASYNC</code></a></strong>
<dd>
<p>The sound is played asynchronously and the function
returns immediately after beginning the sound
(if this flag is not specified, the sound is
played synchronously and the function returns
when the sound ends).</p>
</dd>
</li>
<dt><strong><a name="item_snd_loop"><code>SND_LOOP</code></a></strong>
<dd>
<p>The sound plays repeatedly until it is stopped.
You must also specify <a href="#item_snd_async"><code>SND_ASYNC</code></a> flag.</p>
</dd>
</li>
<dt><strong><a name="item_snd_nodefault"><code>SND_NODEFAULT</code></a></strong>
<dd>
<p>No default sound is used. If the specified <em>sound</em>
cannot be found, the function returns without
playing anything.</p>
</dd>
</li>
<dt><strong><a name="item_snd_nostop"><code>SND_NOSTOP</code></a></strong>
<dd>
<p>If a sound is already playing, the function fails.
By default, any new call to the function will stop
previously playing sounds.</p>
</dd>
</li>
</dl>
<dt><strong><a name="item_stop"><strong>Win32::Sound::Stop()</strong></a></strong>
<dd>
<p>Stops the sound currently playing.</p>
</dd>
</li>
<dt><strong><a name="item_volume"><strong>Win32::Sound::Volume()</strong></a></strong>
<dd>
<p>Returns the wave device volume; if
called in an array context, returns left
and right values. Otherwise, returns a single
32 bit value (left in the low word, right
in the high word).
In case of error, returns <a href="../../lib/Pod/perlfunc.html#item_undef"><code>undef</code></a> and sets
$!.</p>
</dd>
<dd>
<p>Examples:</p>
</dd>
<dd>
<pre>
<span class="operator">(</span><span class="variable">$L</span><span class="operator">,</span> <span class="variable">$R</span><span class="operator">)</span> <span class="operator">=</span> <span class="variable">Win32::Sound::Volume</span><span class="operator">();</span>
<span class="keyword">if</span><span class="operator">(</span> <span class="keyword">not</span> <span class="keyword">defined</span> <span class="variable">Win32::Sound::Volume</span><span class="operator">()</span> <span class="operator">)</span> <span class="operator">{</span>
<span class="keyword">die</span> <span class="string">"Can't get volume: $!"</span><span class="operator">;</span>
<span class="operator">}</span>
</pre>
</dd>
</li>
<dt><strong><strong>Win32::Sound::Volume(LEFT, [RIGHT])</strong></strong>
<dd>
<p>Sets the wave device volume; if two arguments
are given, sets left and right channels
independently, otherwise sets them both to
LEFT (eg. RIGHT=LEFT). Values range from
0 to 65535 (0xFFFF), but they can also be
given as percentage (use a string containing
a number followed by a percent sign).</p>
</dd>
<dd>
<p>Returns <a href="../../lib/Pod/perlfunc.html#item_undef"><code>undef</code></a> and sets $! in case of error,
a true value if successful.</p>
</dd>
<dd>
<p>Examples:</p>
</dd>
<dd>
<pre>
<span class="variable">Win32::Sound::Volume</span><span class="operator">(</span><span class="string">'50%'</span><span class="operator">);</span>
<span class="variable">Win32::Sound::Volume</span><span class="operator">(</span><span class="number">0xFFFF</span><span class="operator">,</span> <span class="number">0x7FFF</span><span class="operator">);</span>
<span class="variable">Win32::Sound::Volume</span><span class="operator">(</span><span class="string">'100%'</span><span class="operator">,</span> <span class="string">'50%'</span><span class="operator">);</span>
<span class="variable">Win32::Sound::Volume</span><span class="operator">(</span><span class="number">0</span><span class="operator">);</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_format"><strong>Win32::Sound::Format(filename)</strong></a></strong>
<dd>
<p>Returns information about the specified WAV file format;
the array contains:</p>
</dd>
<ul>
<li><strong><a name="item_rate">sample rate (in Hz)</a></strong>
<li><strong><a name="item_sample">bits per sample (8 or 16)</a></strong>
<li><strong><a name="item_channels">channels (1 for mono, 2 for stereo)</a></strong>
</ul>
<p>Example:</p>
<pre>
<span class="operator">(</span><span class="variable">$hz</span><span class="operator">,</span> <span class="variable">$bits</span><span class="operator">,</span> <span class="variable">$channels</span><span class="operator">)</span>
<span class="operator">=</span> <span class="variable">Win32::Sound::Format</span><span class="operator">(</span><span class="string">"file.wav"</span><span class="operator">);</span>
</pre>
<dt><strong><a name="item_devices"><strong>Win32::Sound::Devices()</strong></a></strong>
<dd>
<p>Returns all the available sound devices;
their names contain the type of the
device (WAVEOUT, WAVEIN, MIDIOUT,
MIDIIN, AUX or MIXER) and
a zero-based ID number: valid devices
names are for example:</p>
</dd>
<dd>
<pre>
WAVEOUT0
WAVEOUT1
WAVEIN0
MIDIOUT0
MIDIIN0
AUX0
AUX1
AUX2</pre>
</dd>
<dd>
<p>There are also two special device
names, <code>WAVE_MAPPER</code> and <code>MIDI_MAPPER</code>
(the default devices for wave output
and midi output).</p>
</dd>
<dd>
<p>Example:</p>
</dd>
<dd>
<pre>
<span class="variable">@devices</span> <span class="operator">=</span> <span class="variable">Win32::Sound::Devices</span><span class="operator">();</span>
</pre>
</dd>
</li>
<dt><strong><a name="item_deviceinfo">Win32::Sound::DeviceInfo(DEVICE)</a></strong>
<dd>
<p>Returns an associative array of information
about the sound device named DEVICE (the
same format of Win32::Sound::Devices).</p>
</dd>
<dd>
<p>The content of the array depends on the device
type queried. Each device type returns <strong>at least</strong>
the following information:</p>
</dd>
<dd>
<pre>
manufacturer_id
product_id
name
driver_version</pre>
</dd>
<dd>
<p>For additional data refer to the following
table:</p>
</dd>
<dd>
<pre>
WAVEIN..... formats
channels</pre>
</dd>
<dd>
<pre>
WAVEOUT.... formats
channels
support</pre>
</dd>
<dd>
<pre>
MIDIOUT.... technology
voices
notes
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -