Audioのstreamの取得方法

337 views
Skip to first unread message

tommylion

unread,
Aug 23, 2009, 9:21:52 PM8/23/09
to 日本Androidの会
こんにちは。トミーと申します。

私はMediaRecorderを使ってmp3ファイルを放送したいですが。
そのAndroid SDKのソースは下記のようです。
------------------------------------------------------------------
MediaRecorder recorder = new MediaRecorder();
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setOutputFile(PATH_NAME);
recorder.prepare();
recorder.start();
------------------------------------------------------------------

そのソースは問題ないです。でも、私はbyte配列でStreamに書き込みたいです。
マイクを動的音声を出したい。

Javaでパソコン上のやり方が分かりますけど、
そのソースは下記のようです。
------------------------------------------------------------------
SourceDataLine line = (SourceDataLine)AudioSystem.getLine(info);
SourceDataLine line = (SourceDataLine)AudioSystem.getLine(info);
// Initialize Audio
line.open(); line.start();
byte[] block = new byte[1024];
line.write(block, 0, block.length);
line.drain();
------------------------------------------------------------------

Android SDKにクラスSourceDataLineがないため、そのまま使われないです。
誰かが分かりますか?教えてお願いいたします。

Keiji Ariyama

unread,
Aug 24, 2009, 12:36:11 AM8/24/09
to android-g...@googlegroups.com
有山@大阪です。

> そのソースは問題ないです。でも、私はbyte配列でStreamに書き込みたいです。
 android.media.AudioTrackを使ってはどうでしょう。

http://developer.android.com/reference/android/media/AudioTrack.html

The AudioTrack class manages and plays a single audio resource for Java
applications. It allows to stream PCM audio buffers to the audio
hardware for playback. This is achieved by "pushing" the data to the
AudioTrack object using one of the write(byte[], int, int) and
write(short[], int, int) methods.

 音声の直入出力が出来るので、面白くなりそう。

/*********************************************
有限会社シーリス
代表 有山 圭二
@Address
〒530-0044
大阪市北区東天満二丁目2番5号
第2新興ビル 601
@Web http://www.c-lis.co.jp
*********************************************/

tommylion

unread,
Aug 24, 2009, 3:00:57 AM8/24/09
to 日本Androidの会
有山様

お世話になっております。トミーと申します。

ご回答ありがとうございました。
私の問題はAudioTrackで解決しました。

よろしくおねがいいたします。

On 8月24日, 午後1:36, Keiji Ariyama <keiji_ariy...@c-lis.co.jp> wrote:
> 有山@大阪です。
>
> > そのソースは問題ないです。でも、私はbyte配列でStreamに書き込みたいです。
>  android.media.AudioTrackを使ってはどうでしょう。
>
> http://developer.android.com/reference/android/media/AudioTrack.html
>
> The AudioTrack class manages and plays a single audio resource for Java
> applications. It allows to stream PCM audio buffers to the audio
> hardware for playback. This is achieved by "pushing" the data to the
> AudioTrack object using one of the write(byte[], int, int) and
> write(short[], int, int) methods.
>
>  音声の直入出力が出来るので、面白くなりそう。
>
> /*********************************************
> 有限会社シーリス
> 代表 有山 圭二
> @Address
> 〒530-0044
> 大阪市北区東天満二丁目2番5号
> 第2新興ビル 601
> @Webhttp://www.c-lis.co.jp
Reply all
Reply to author
Forward
0 new messages