Windows Phone麦克风api。无法在Android上播放

时间:2013-09-03 09:43:02

标签: android windows-phone

我正在Windows Phone中创建应用程序,该应用程序记录来自麦克风的音频并将其发送到云存储。

我可以在WP上录制和播放,但我正在尝试将数据转换为Base64并将其附加到JSON对象。

这就是我现在正在做的事情

    jsonObject.Recording = Convert.ToBase64String(stream.toArray());

流是

    private MemoryStream stream = new MemoryStream(); 

    void microphone_BufferReady(object sender, EventArgs e)
    {
        // Retrieve audio data
        microphone.GetData(buffer);            

        // Store the audio data in a stream
        stream.Write(buffer, 0, buffer.Length);
    }

缓冲区是

    buffer = new byte[microphone.GetSampleSizeInBytes(microphone.BufferDuration)];

在Android端,我正在解码Base64并创建一个.MP4文件进行播放。 这失败了,因为我很确定存在编码/格式问题。

有人能指出我正确的方向吗?

由于

更新:

WP记录PCM,采样率16000 Hz,采样大小16位,通道1,音频编码PCM。

据我所知,Android支持此功能。

我在Android上解码它是这样的:

    byte[] decoded = Base64.decode(jsonObject.getRecording(), Base64.DEFAULT);

    String path = getCacheDir().toString() + "recording.wav";

    File file2 = new File(path);
                    FileOutputStream os = new FileOutputStream(file2, false);
                    os.write(decoded);
                    os.close();

像这样玩:

    fileInputStream = new FileInputStream(path);
    mPlayer.setDataSource(fileInputStream.getFD());
    mPlayer.prepare();
    mPlayer.start();

0 个答案:

没有答案