
添加音频元素、 设置的属性,你需要和添加源。您将添加更多不同的来源,更多的用户将能够听听您的音频 (因为没有一个音频格式跨所有浏览器支持)。三个例子:
<audio src="audio.wav" preload="auto" controls></audio>
这只是将预加载audio.wav文件并不会发挥它直到用户单击播放按钮。nonemetadata) 的其他preload值将不预加载该文件。
autoplay时它会加载该文件,然后再loop它以这种方式:
指定多个音频格式来解决前面提到的问题:
<audio preload="auto" controls>
<source src="audio.wav" />
<source src="audio.mp3" />
<source src="audio.ogg" />
</audio>
神秘controls吗?它是一个布尔属性不会影响任何方式中的插件,但可确保该浏览器的默认播放器是显示和禁用 JavaScript 时显示控件与控件。
最后一步 ― 调用插件
<audio src="audio.wav" preload="auto" controls></audio>
<script src="jquery.js"></script>
<script src="audioplayer.js"></script>
<script>
$( function()
{
$( 'audio' ).audioPlayer()
})
</script>
该插件,一些可选的参数。最重要的一个被称为classPrefix。传递的值成为子元素的父元素和类名称前缀的类名称。其他选项只可能有利英语以外的语言。具有默认值的示例:
$( 'audio' ).audioPlayer(
{
classPrefix: 'audioplayer',
strPlay: 'Play',
strPause: 'Pause',
strVolume: 'Volume'
})
有一些类的名称,被分配到父元素时:
音乐播放器版本― ― 正在播放音频
<div class="audioplayer audioplayer-playing">
停止停止音乐播放器版本― ― 音频
<div class="audioplayer audioplayer-stopped">
音乐播放器版本静音― ― 卷处于静音状态
<div class="audioplayer audioplayer-muted">
音乐播放器版本 novolume ― ― 没有音量调节是可用的:
<div class="audioplayer audioplayer-novolume">
重要提示:时不支持音频元素或没有任何给定的音频文件是与浏览器兼容,玩家切换到迷你模式,基本上减少了播放机播放/暂停按钮 (因为"嵌入"元素是有限的 *** 作):
<div class="audioplayer audioplayer-stopped audioplayer-mini">
<embed src="audio.wav" width="0" height="0" volume="100" autostart="false" loop="false" />
<div class="audioplayer-playpause" title="Play"><a href="#">Play</a></div>
</div>
使用如下命令:sudo apt-get install libpulse-dev
安装时会提示依赖于下面这几个软件,一并安装即可:
libavahi-client-dev libavahi-common-dev libpulse-mainloop-glib0 libpulse0
这个也可以上packages.ubuntu.com官方网址查询libpulse-dev软件的依赖关系,相关链接如下:
http://packages.ubuntu.com/raring/libpulse-dev
如下图所示:
二、pulseaudio库的使用(同步simple API)
pulseaudio官网有关于pulseaudio的API doxygen使用手册,网址如下:
http://freedesktop.org/software/pulseaudio/doxygen/
1、播音sample
A simple playback tool using the simple API
//pacat-simple.c
/***
This file is part of PulseAudio.
PulseAudio is free softwareyou can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundationeither version 2.1 of the License,
or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTYwithout even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with PulseAudioif not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
USA.
***/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>
#include <pulse/simple.h>
#include <pulse/error.h>
#define BUFSIZE 1024
int main(int argc, char*argv[]) {
/* The Sample format to use */
static const pa_sample_spec ss = {
.format = PA_SAMPLE_S16LE,
.rate = 44100,
.channels = 2
}
pa_simple *s = NULL
int ret = 1
int error
/* replace STDIN with the specified file if needed */
if (argc >1) {
int fd
if ((fd = open(argv[1], O_RDONLY)) <0) {
fprintf(stderr, __FILE__": open() failed: %s\n", strerror(errno))
goto finish
}
if (dup2(fd, STDIN_FILENO) <0) {
fprintf(stderr, __FILE__": dup2() failed: %s\n", strerror(errno))
goto finish
}
close(fd)
}
/* Create a new playback stream */
if (!(s = pa_simple_new(NULL, argv[0], PA_STREAM_PLAYBACK, NULL, "playback", &ss, NULL, NULL, &error))) {
fprintf(stderr, __FILE__": pa_simple_new() failed: %s\n", pa_strerror(error))
goto finish
}
for () {
uint8_t buf[BUFSIZE]
ssize_t r
#if 0
pa_usec_t latency
if ((latency = pa_simple_get_latency(s, &error)) == (pa_usec_t) -1) {
fprintf(stderr, __FILE__": pa_simple_get_latency() failed: %s\n", pa_strerror(error))
goto finish
}
fprintf(stderr, "%0.0f usec \r", (float)latency)
#endif
/* Read some data ... */
if ((r = read(STDIN_FILENO, buf, sizeof(buf))) <= 0) {
if (r == 0) /* EOF */
break
fprintf(stderr, __FILE__": read() failed: %s\n", strerror(errno))
goto finish
}
/* ... and play it */
if (pa_simple_write(s, buf, (size_t) r, &error) <0) {
fprintf(stderr, __FILE__": pa_simple_write() failed: %s\n", pa_strerror(error))
goto finish
}
}
/* Make sure that every single sample was played */
if (pa_simple_drain(s, &error) <0) {
fprintf(stderr, __FILE__": pa_simple_drain() failed: %s\n", pa_strerror(error))
goto finish
}
ret = 0
finish:
if (s)
pa_simple_free(s)
return ret
}
2、录音sample
A simple recording tool using the simple API
//parec-simple.c
/***
This file is part of PulseAudio.
PulseAudio is free softwareyou can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundationeither version 2.1 of the License,
or (at your option) any later version.
PulseAudio is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTYwithout even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with PulseAudioif not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
USA.
***/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include <pulse/simple.h>
#include <pulse/error.h>
#define BUFSIZE 1024
/* A simple routine calling UNIX write() in a loop */
static ssize_t loop_write(int fd, const void*data, size_t size) {
ssize_t ret = 0
while (size >0) {
ssize_t r
if ((r = write(fd, data, size)) <0)
return r
if (r == 0)
break
ret += r
data = (const uint8_t*) data + r
size -= (size_t) r
}
return ret
}
int main(int argc, char*argv[]) {
/* The sample type to use */
static const pa_sample_spec ss = {
.format = PA_SAMPLE_S16LE,
.rate = 44100,
.channels = 2
}
pa_simple *s = NULL
int ret = 1
int error
/* Create the recording stream */
if (!(s = pa_simple_new(NULL, argv[0], PA_STREAM_RECORD, NULL, "record", &ss, NULL, NULL, &error))) {
fprintf(stderr, __FILE__": pa_simple_new() failed: %s\n", pa_strerror(error))
goto finish
}
for () {
uint8_t buf[BUFSIZE]
/* Record some data ... */
if (pa_simple_read(s, buf, sizeof(buf), &error) <0) {
fprintf(stderr, __FILE__": pa_simple_read() failed: %s\n", pa_strerror(error))
goto finish
}
/* And write it to STDOUT */
if (loop_write(STDOUT_FILENO, buf, sizeof(buf)) != sizeof(buf)) {
fprintf(stderr, __FILE__": write() failed: %s\n", strerror(errno))
goto finish
}
}
ret = 0
finish:
if (s)
pa_simple_free(s)
return ret
}
3、编译含有pulseaudio库的时候,需要添加pulseaudio的动态链接库-libpulse等,
(可以在/usr/lib/i386-linux-gnu/目录下找到pulse的动态库
/usr/lib/i386-linux-gnu/libpulsecommon-1.1.so
/usr/lib/i386-linux-gnu/libpulsedsp.so
/usr/lib/i386-linux-gnu/libpulse-mainloop-glib.so
/usr/lib/i386-linux-gnu/libpulse-mainloop-glib.so.0
/usr/lib/i386-linux-gnu/libpulse-mainloop-glib.so.0.0.4
/usr/lib/i386-linux-gnu/libpulse-simple.so
/usr/lib/i386-linux-gnu/libpulse-simple.so.0
/usr/lib/i386-linux-gnu/libpulse-simple.so.0.0.3
/usr/lib/i386-linux-gnu/libpulse.so
/usr/lib/i386-linux-gnu/libpulse.so.0
/usr/lib/i386-linux-gnu/libpulse.so.0.13.5)
例如:
gcc -o pacat-simple pacat-simple.c -lpulse -lpulsecommon-1.1 -lpulse-simple
三、ALSA音频库
ALSA全称为:Advanced Linux Sound Architecture
一个网址为:http://www.alsa-project.org/main/index.php/Main_Page
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)