(マルチメディアの第7回レジュメを参考に)

挑戦問題10

8bit、モノでサンプリングされたwavファイルの波形を表示するプログラムを作成せよ。

HINT) 表示にはsample 3.2を応用しよう。波形を表示するためにはまずストリームの中身を知らないといけないのでsample 4.2.1のif文の中にfor(int tmp=0; tmp<nBytesRead; tmp++) System.out.println(0x00FF & abData[tmp]);を追加して確認しよう。0x00FFとビット論理積をした理由はabDataは0から255までの値をもっているが、そのまま表示するとbyteは-127~127の範囲をもつため、正しく表示されない。これは(int)で型変換(typecast)しても変わらない。そのため0x00FFと論理積をして符号を取り除いたわけである。8bit、モノのwavはサウンドレコーダーを使いwavファイルを読み込んだ後、「ファイル」-「プロパティ」-「変換」で属性を8bit、モノラルを変更し、保存すれば簡単に作れる。また波形を表示の際にはサンプリング周波数を考慮しよう。

 

挑戦問題11

8bit、モノでサンプリングされたwavファイルを逆演奏するプログラムを作成せよ。

HINT) ストリームのデータを逆に並べて再生することに挑戦しよう。挑戦問題10のヒントを参考に。


挑戦問題12

現時刻を声で知らせるプログラムを作成せよ。

HINT) サンプルの声ファイルと必要に応じて自分が録音した声を組み合わせて使おう。現在の時刻はcalendar classのgetTime( )メソッドを用いれば可能に。