【问题标题】:Unable to play audio on device (iOS)无法在设备上播放音频 (iOS)
【发布时间】:2012-03-22 17:54:45
【问题描述】:

我正在使用以下代码在 iOS 中使用 **AVAudioPlayer** 类播放音频。

NSString *audioPath = [[NSBundle mainBundle] pathForResource:@"myAudio" ofType:@"mp3"];
NSURL *audioURL = [[NSURL alloc] initFileURLWithPath:audioPath];
NSError *error;
AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:audioURL error:&error];
audioPlayer.delegate = self;
[audioPlayer prepareToPlay];
[audioPlayer play];

这在模拟器中运行良好。但是,当我在设备上运行它时,我没有得到声音输出。 AVAudioPlayerDelegate 的委托方法也被调用,但没有音量输出。我在哪里出错了......我在这里注意到的另一个重要方面是,在模拟器上播放音频文件时,我在 GDB 中收到一条大消息。但是在设备上没有发生同样的事情......请参阅下面的屏幕截图,了解在模拟器上运行时的 GDB 消息。

【问题讨论】:

  • 有一次我在导入 AVFoundation 时不小心勾选了复制框。

标签: iphone ios ipad avfoundation avaudioplayer


【解决方案1】:

检查您的设备是否处于扬声器模式..

要通过扬声器收听声音,请使用 -

// set audio to loudSpeaker mode for iphone
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);

或者你可以使用这个来增加你的音频文件的音量 -

Player.volume = 10.0;

【讨论】:

  • 如何检查我的设备是否处于扬声器模式?
  • 只需将上述设置设置为通过扬声器播放声音。如果您的声音在此设置后播放,则表示声音之前是通过麦克风传来的。也许这会对您有所帮助。
【解决方案2】:

您是否尝试过 .caf 或 .wav 文件? .mp3 可能无法在 iPhone 上运行。还要检查文件的持续时间不超过 30 秒。

【讨论】:

    【解决方案3】:

    我真是太愚蠢了……我的音量按钮被关闭了。这就是原因。

    真的很抱歉浪费了你们的时间……我真诚的道歉。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多