wp8 ios音频录制和播放兼容性

时间:2013-01-13 09:36:35

标签: ios audio windows-phone-8 recording aac

我想在WP8上播放iOS录音,反之亦然。

在iOS上,我正在使用AVAudioRecorder进行以下配置:

NSString *tempPath = NSTemporaryDirectory();

NSURL *soundFileURL = [NSURL fileURLWithPath:[tempPath stringByAppendingPathComponent:@"sound.aac"]];

NSDictionary *recordSettings = [NSDictionary
                                dictionaryWithObjectsAndKeys:
                                [NSNumber numberWithInt:kAudioFormatMPEG4AAC],
                                AVFormatIDKey,
                                [NSNumber numberWithInt:AVAudioQualityMin],
                                AVEncoderAudioQualityKey,
                                [NSNumber numberWithInt:8000],
                                AVEncoderBitRateKey,
                                [NSNumber numberWithInt: 1],
                                AVNumberOfChannelsKey,
                                [NSNumber numberWithFloat:8000.0],
                                AVSampleRateKey,
                                [NSNumber numberWithInt:16],
                                AVEncoderBitDepthHintKey,
                                nil];

NSError *error = nil;

_audioRecorder = [[AVAudioRecorder alloc]
                  initWithURL:soundFileURL
                  settings:recordSettings
                  error:&error];

_audioRecorder.delegate = self;

文件“sound.aac”包含AAC容器中的录音,播放录制的音频样本在iOS上运行良好。

在将文件传输到WP8设备后,我无法在WP8上播放“sound.aac”。根据以下链接:http://msdn.microsoft.com/en-us/library/windowsphone/develop/ff462087(v=vs.105).aspx#BKMK_AudioSupport WP8应该能够播放该文件。 我使用的WP8代码是:

try
{
    this.mediaPlayer = new MediaElement();
    mediaPlayer.MediaEnded += new RoutedEventHandler(mediaPlayer_MediaEnded);

    IsolatedStorageFile myStore = IsolatedStorageFile.GetUserStoreForApplication();
    IsolatedStorageFileStream mediaStream = myStore.OpenFile("sound.aac", FileMode.Open, FileAccess.Read);

    this.mediaPlayer.SetSource(mediaStream);
    this.messageTextBlock.Text = "Playing the message...";
    mediaPlayer.Play();
}
catch (Exception exception)
{
    MessageBox.Show("Error playing audio!");
    Debug.WriteLine(exception);
    return;
}

在此之后,“sound.aac”正在无休止地播放,扬声器没有声音。显示消息“播放消息...”,没有抛出异常,没有mediaPlayer_MediaEnded调用。我所能做的只是停止比赛。

我不知道如何让它发挥作用。

0 个答案:

没有答案