October 29, 2011

PhoneGapで録音する場合の注意点

PhoneGapで録音する場合、Mediaを使用します。
http://docs.phonegap.com/en/1.1.0/phonegap_media_media.md.html#Media

以下、Androidでの話です。

var media = new Media("xxx.mp3");
とすると、録音ファイル名はxxx.mp3になります。

ただ、厳密にはSDカード直下にテンポラリファイルとして録音。
録音完了後に正式なファイル名(上の例ですとxxx.mp3)にリネーム。
としているようです。

録音停止直後にJavascriptからAndroid側のメソッドを呼び出してxxx.mp3にアクセスする処理を
書いていたのですが、まだリネーム中なのか、xxx.mp3が存在しないケースが有りました。
(存在するケースも有りました。)

PhoneGap側を以下のように書きなおすと、この問題は収まりました。
media = new Media("xxx.mp3", onSuccess);

onSuccessは録音成功時に呼び出されるJavascriptの関数名になります。
onSuccessの中で、Android側のメソッドを呼び出すように修正しました。

No comments:

Post a Comment