在iPad上重新启动应用程序后,iOS MPMoviePlayerController不播放音频

时间:2014-10-29 17:52:30

标签: objective-c ipad ios8 mpmovieplayercontroller audio-player

我正在尝试使用MPMoviePlayerController来创建音频播放器,而无需实现我自己的擦洗和播放/暂停按钮。

我有将代码录制到NSData并将其保存到磁盘的代码。下面的方法通过使用MPMoviePlayerController播放音频来测试音频。

如果我在录制完成后立即执行该方法,则下面的代码可以工作(播放音频,可以听到)。如果我按下主页按钮,然后返回应用程序也可以。

然而,当我杀死应用程序并重启,或者从xCode点击“run”时,我听不到任何声音。以下是症状:

  • 下面的代码列出了磁盘上 NSData存在且长度
  • 路径与NSData 相同
  • NSData是 kAudioFormatMPEG4AAC 格式
  • 媒体播放器显示正确的持续时间
  • 媒体播放器的擦洗器从头到尾移动
  • 扬声器音量设置在两种情况下都达到最大值。
  • 应用程序被杀死并重新启动后,
  • 听不到音频

什么可能导致我的MPMoviePlayerController在应用程序重新启动时不提供任何音频?我正在将音频长度写入文件的扩展属性,这可能会弄乱文件的“可播放性” ?

-(void)testPlayback:(AudioNote*)note
{
    NSString* path = [note filepath];
    if(note == nil || path.length == 0)
    {
        return;
    }
    NSURL* url = [NSURL fileURLWithPath:path];

   //file exists, and data exists on disk in both cases
    NSString* exists = ([note fileExists]? @"YES":@"NO");
    NSUInteger length = note.fileData.length;

    DLog(@"Playing note (exists: %@, data length:%i), duration: %.2f",exists,length,note.durationSeconds);

    self.moviePlayer=[[MPMoviePlayerController alloc] initWithContentURL:url];

    self.moviePlayer.controlStyle=MPMovieControlStyleDefault;
    [self.view addSubview:self.moviePlayer.view];


    [self.moviePlayer prepareToPlay];
    [self.moviePlayer play];
}

0 个答案:

没有答案