0

次のコードを使用して、オーディオの録音/再生の Xamarin の例を使用しようとしました: Example_WorkingWithAudio

以下にエラーTaskがありasyncます:

protected async Task PlayAudioTrackAsync ()
{
    audioTrack = new AudioTrack (
        // Stream type
        Android.Media.Stream.Music,
        // Frequency
        11025,
        // Mono or stereo
        ChannelConfiguration.Mono,
        // Audio encoding
        Android.Media.Encoding.Pcm16bit,
        // Length of the audio clip.
        buffer.Length,
        // Mode. Stream or static.
        AudioTrackMode.Stream);

    audioTrack.Play ();

    await audioTrack.WriteAsync (buffer, 0, buffer.Length);
}

dot42 用に変更:

protected async Task PlayAudioTrackAsync()
{
    audioTrack = new AudioTrack (AudioManager.STREAM_MUSIC,11025,
                                 AudioFormat.CHANNEL_OUT_MONO,
                                 AudioFormat.ENCODING_PCM_16BIT,
                                 buffer.Length,
                                 AudioTrack.MODE_STREAM
                                 );
    audioTrack.Play ();
    await audioTrack.WriteAsync(buffer, 0, buffer.Length);
}

「audioTrack.WriteAsync」を変更するにはどうすればよいですか? この行でコンパイル エラーが発生しました。

4

2 に答える 2

0

AudioTrack には WriteAsync がありません。dot42 の場合は、次の行を使用します。

await Task.Factory.StartNew( () => audioTrack.Write(buffer, 0, buffer.Length) );

これは Xamarin でも機能すると思います。

于 2013-11-11T11:52:28.857 に答える