【问题标题】:Audio playback does not start音频播放未开始
【发布时间】:2010-08-05 10:46:51
【问题描述】:
NSError *err;

// Initialize audio player
audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&err];

audioPlayer.delegate = self;
[audioPlayer play];

使用上面的代码,我正在尝试初始化 .mp3 文件的播放,但是播放根本没有开始。没有声音。我究竟做错了什么?我检查了“错误”,但那里什么也没有。

编辑:添加 AVAudioSession 后,我从 AVAudioPlayer 收到以下错误

The operation couldn’t be completed. (OSStatus error -43.)

【问题讨论】:

    标签: objective-c avaudioplayer


    【解决方案1】:

    显然AVAudioPlayer 不支持流式传输。 HTTP 就像我试图做的那样,所以通过使用 AVPlayer 代替,我得到了它的工作。

    【讨论】:

      【解决方案2】:

      您是否初始化了 AVAudioSession?

      以下内容对我来说很好。可能会给你一些不适合你的提示。

      正在初始化:

      AVAudioSession* session = [AVAudioSession sharedInstance];
      [session setCategory:AVAudioSessionCategoryAmbient error:nil];
      [session setActive:TRUE error:nil]; 
      

      加载中:

      AVAudioPlayer* audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:fileUrl error:nil];
      audioPlayer.numberOfLoops = 0;
      [audioPlayer prepareToPlay];
      audioPlayer.volume = 1.0;
      

      播放:

      [audioPlayer play];
      

      更新

      为了找到适合fileUrl 的 NSRUL,我使用了以下代码:

      NSURL* fileUrl = [NSURL fileURLWithPath:
           [[NSBundle mainBundle] pathForResource:@"MySound" ofType:@"wav"] isDirectory:NO];
      

      然后我将MySound.wav 添加到项目(捆绑包)中。

      【讨论】:

      • 我也尝试使用 AVAudioSession,但现在我只收到此错误;操作无法完成。 (OSStatus 错误 -43。)
      • 我上面的代码可以同时处理 mp3 和 wave。尝试另一个文件,一个 .wav 文件。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多