2012-05-08 7 views
0

phoneGapでサンプルオーディオを録音しようとしていますが、成功しません。私は何PhoneGap:media.startRecord()がcordova-1.6.1で動作しない

はマニュアルに従って、非常に単純です:

<script> 
var media = null; 

function record(){ 
    media = new Media("audio.wav"); 
    media.startRecord(); 
} 
</script> 

「audio.wavは」私の「WWW」フォルダ内に存在し、空のwavファイルです。 このコードブロックを実行すると、私はこのコンソールのエラーが出るたび:

- ERROR: Method 'create:withDict:' not defined in Plugin 'Media' 

- FAILED pluginJSON = {"className":"Media","methodName":"create","arguments":["INVALID","952d1fe0-5ec7-5e48-d68a-74cc979878b5","audio.wav"]} 

でもそのエラーと、記録はおそらく続きます。しかし、私は録音を再生しようとすると、メディアオブジェクトをデバッガで見て、「_duration:-1」と表示されます

実際のiPhoneデバイスでアプリケーションをデバッグしようとすると、別のエラーが表示されます。

答えて

1

実際には、私が正しく描いているようにルートディレクトリにファイルを作成したと思ったとしても、後でそれにアクセスすることはできませんでしたが、URIを取得しました(何らかの理由でファイルが見つかりませんでした。同じディレクトリにファイルが作成されました!!!!)。 "documents://"でアクセスしなければならないことがわかりました(簡単な方法ではありません)。私は新しいメディアを作成するときに、私は次のように実行します。

私は var mediaFile = new Media(fileURI_I_Just_Created)それはそのファイルが存在しないと言うでしょう」行っていた場合は

var mediaFile = new Media ("documents://"+audioFileName).

!!!!(お奨めは、PhoneGapのが大好き!)

0

wwwフォルダのルートディレクトリではなく、空のwavファイルを作成する必要があります。ルートディレクトリURIを取得する方法の1つは、toURI()という方法を使用することです。

これは、URIがどのように見えるかです:

以下
file:///data/some/com.stack.overflow/ 

を使用すると、ルートディレクトリに空白のwavファイルを作成する方法の例です:

function onDeviceReady() { 
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 
} 

function gotFS(fileSystem) { 
    fileSystem.root.getFile("blank.wav", {create: true, exclusive: false}, gotFileEntry, fail); 
} 

注:

create: Used to indicate that the file or directory should be created, if it does not exist. (boolean) 
exclusive: By itself, exclusive has no effect. Used with create, it causes the file or directory creation to fail if the target path 

already exists. (boolean)

関連する問題