【问题标题】:AVfoundation AudioPlayer not workingAVfoundation AudioPlayer 不工作
【发布时间】:2013-05-05 18:22:15
【问题描述】:

我正在尝试使用 AVFoundation 框架在按钮单击时播放声音。以前,我使用音频工具箱,但是当我使用音频播放器时,什么都没有。奇怪的是,当我在手机上测试它并按下按钮时,音量控制不是正常的铃声音量控制。这表明它应该正在播放,但我在手机或模拟器上听不到任何声音。我使用了不同的文件,创建了新项目更改了代码,没有任何帮助。

这是.h中的代码:

@interface MainViewController : UIViewController <AVAudioPlayerDelegate>

- (IBAction)test;

这是.m中的代码:

- (IBAction)test {
NSString *path = [[NSBundle mainBundle] pathForResource:@"sound" ofType:@"mp3"];
AVAudioPlayer* theAudio = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL];
theAudio.delegate = self;
[theAudio play];
}

【问题讨论】:

  • 你检查过theAudio是否为nil吗?
  • @sergio 我该怎么做?
  • 你已经声明你将实现AVAudioPlayerDelegate 你真的这样做了吗?这里没有代码。但是,我同意以前的 cmets。 path 最有可能是 nil 并且 [theAudio play] 是空操作。
  • @Marko 好的,谢谢!我需要在哪里输入什么代码?抱歉,我还不是最擅长的。
  • @rblue36: 在初始化 theAudio 之后放一个 NSlog(@"theAudio address: %x", (long)theAudio);...

标签: ios objective-c xcode audio avfoundation


【解决方案1】:

你能在播放声音之前这样做吗?我认为你可能有错误的类别:

AudioSessionInitialize (NULL,NULL,NULL,NULL);
UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback;
AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,sizeof (sessionCategory),&sessionCategory); 
AudioSessionSetActive(true);

【讨论】:

  • 这个? - (IBAction)test { AudioSessionInitialize (NULL,NULL,NULL,NULL); UInt32 sessionCategory = kAudioSessionCategory_MediaPlayback; AudioSessionSetProperty(kAudioSessionProperty_AudioCategory,sizeof(sessionCategory),&sessionCategory); AudioSessionSetActive(true); NSString path = [[NSBundle mainBundle] pathForResource:@"hagay" ofType:@"mp3"]; AVAudioPlayer theAudio = [[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:path] error:NULL]; theAudio.delegate = self; [音频播放]; }
  • 虽然音频的重要用途肯定需要,但默认启用音频输出。
猜你喜欢
  • 1970-01-01
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
  • 2017-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多