AVfoundation AudioPlayer 不工作
Posted
技术标签:
【中文标题】AVfoundation AudioPlayer 不工作【英文标题】:AVfoundation AudioPlayer not working 【发布时间】: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);
...
【参考方案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; [音频播放]; 虽然音频的重要用途肯定需要,但默认启用音频输出。以上是关于AVfoundation AudioPlayer 不工作的主要内容,如果未能解决你的问题,请参考以下文章
扑。任务“:audioplayer:verifyReleaseResources”执行失败
AVPlayer/AudioPlayer:没有错误但没有声音