Ubuntu12.04でのpulseaudioとAPIの使用法のインストール

**1.オーディオライブラリクライアントソフトウェアlibpulse-devをUbuntu12.04 **にインストールします。

Package libpulse-dev:PulseAudio client development headers and libraries

次のコマンドを使用します:

sudo apt-get install libpulse-dev

インストール中に、一緒にインストールできる次のソフトウェアを使用するように求められます。

libavahi-client-dev libavahi-common-dev libpulse-mainloop-glib0 libpulse0

また、packages.ubuntu.comの公式Webサイトでlibpulse-devソフトウェアの依存関係を確認することもできます。関連するリンクは次のとおりです。

http://packages.ubuntu.com/raring/libpulse-dev

以下に示すように:

2.パルスオーディオライブラリの使用(同期シンプルAPI)

pulseaudioの公式ウェブサイトにはpulseaudioAPIdoxygenに関するマニュアルがあります。URLは次のとおりです。

http://freedesktop.org/software/pulseaudio/doxygen/

1、 放送サンプル

A simple playback tool using the simple API

//pacat-simple.c/***
This file is part of PulseAudio.
PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either 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 WARRANTY; without 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 PulseAudio; if 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 */staticconst 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;
# if0
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、 録音サンプル

A simple recording tool using the simple API

//parec-simple.c/***
This file is part of PulseAudio.
PulseAudio is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either 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 WARRANTY; without 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 PulseAudio; if 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,constvoid*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 */staticconst 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 /ディレクトリにあります。

/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)

たとえば、例としてpacat-simple.cプログラムを取り上げます。

(1) コンパイルコマンドは次のとおりです。

gcc -o pacat-simple pacat-simple.c -lpulse -lpulsecommon-1.1 -lpulse-simple
(2) 前の手順で生成されたpacat-simple実行可能プログラムを実行します

. / pacat-シンプルなAsuka.wav

( 注:オーディオファイル名であるコマンドラインパラメータがあります。インターネットでwav形式のオーディオファイルを検索し、現在のディレクトリに配置して実行します。 )

3.ALSAオーディオライブラリ

ALSAのフルネーム:Advanced Linux Sound Architecture

1つのURLは次のとおりです:http://www.alsa-project.org/main/index.php/Main_Page

Recommended Posts

Ubuntu12.04でのpulseaudioとAPIの使用法のインストール
ubuntuでのrz / szコマンドのインストールと使用方法
Ubuntu16.04でのCUDAのインストールとアンインストール
UbuntuでのPythonでのGDALのインストールと使用
Ubuntuでのdebパッケージのインストール
ubuntuおよびwindowsでのRedisのインストール
UbuntuでのDockerCEのインストール
Ubuntu16.04でのCUDA8.0とCUDA9.0の共存
ubuntuDockerのインストールとRancherの展開
centos7でのredisのインストールと構成
Ubuntu環境でのNginxのインストールと展開
Win10サブシステムUbuntuのインストールと使用
Ubuntu12.04でのDLNA / UPnPサーバーのインストールと構成
UbuntuでのSubversion(SVN)のクイックインストールと構成の詳細な説明
Ubuntuの紹介とインストール
[python] ubuntuの下のpython2とpython3
UbuntuでのLNMPのインストール
CentOS6.5でのrsyncサーバーのインストールと構成
UbuntuでのKaldiのインストールと構成のグラフィックチュートリアル
Ubuntu19.1でのGitLabのインストール、構成、およびアンインストール
ubuntuの使用法の概要
Ubuntu環境でのSSHのインストールと使用
Centosでのconfluence6.3操作記録のインストールとクラッキング
Ubuntu16.04は、VMwareでの完全なインストールと構成のチュートリアルをミラーリングします
CentosでのJira7操作記録のインストールとクラッキング
ubuntu環境でのMySQLのインストールと簡単な実践(1)
Ubuntu16.04のインストールと簡単な構成
ubuntuでのmediawikiの使用
UbuntuPostgreSQLのインストールと構成
centOS7でのSparkのインストールと構成のチュートリアルの詳細な説明
Liunx(centos8)でのyumの基本的な使用法と例(推奨)
ubuntuでのJenkinsのハッピーインストール
ジェンキンス学習のcentos6.9の下でのインストール
CentOS7のインストールとGitlabのメンテナンス
UbuntuにGerritをインストールしてデプロイする
Ubuntu16.04にnodejsとnpmをインストールします
CentOSでのJava-JDKのインストールと構成
VMware12でのUbuntu16.04インストールグラフィックチュートリアル
Ubuntu19.1のインストールと構成中国の環境
Ubuntuインストール後の構成と美化(1)
Nginxのインストールと構成のロード(ubuntu12.04)
Ubuntuの一般的な手順と使用法の詳細
Ubuntu18.04インストールAnaconda3およびVSCodeガイド
CentOS7でのErlang20.2のインストールと展開
Ubuntu構成ソースとインストールソフトウェア
UbuntuでQEMUをコンパイルしてインストールします
Ubuntu環境でのSSHのインストールと使用の詳細な説明
Ubuntuの基本設定:openssh-serverのインストールと使用の概要
Thunderbirdの最新バージョンをインストールし、ubuntuでプラグインを交換します
Windowsでのpython共通ライブラリのインストール
Ubuntuのインストールと展開Redash操作ノート(2020.08)
51MCUプログラムの開発とUbuntuでのダウンロード
CentOS 7でのTomcatのインストールと構成(Tomcatの起動)
CentOS6 / 7でのMySQL8.0のインストール、展開、および構成
Ubuntu18.04システムのインストールと前提条件のソフトウェアインストールガイド
Centos7のインストールとgitlabサーバーの展開
ubuntuと基本的な使用法にdockerをインストールします
Ubuntu18.04サーバーバージョンのインストールと使用(グラフィック)
Ubuntu18.04インストールPycharmチュートリアルの実装
CentOSでのZabbixのインストールと展開およびローカリゼーション
CentOS7でのJenkinsのインストールと展開のチュートリアル