0
自从一年以来,我在商店中有一个应用程序,拥有iPhone 4S的少数人告诉我声音不能在他们的设备上播放。 (他们没有听到任何东西,无论是带耳机还是内置扬声器)AVAudioPlayer不能在iPhone 4S上播放声音
我还在真实设备上测试过(iPhone 3G,3GS,4,ipod 1G,2G,3G,4G,ipad 1,2,3)一切似乎都是正确的。声音在播放。 (在各种操作系统上测试:iOS 3.1.2 - > 6.0,它也可以在模拟器中使用)
不幸的是我没有自己的iphone 4S进行测试,所以很难知道这个特定设备有什么问题。
难道这是iPhone音效设置的问题吗?
但也许这是我的代码问题? 所以,这里是我用来播放声音的代码。
它是正确的吗?
在.H...:
@private AVAudioPlayer* myPlayer;
在.M
...:
-(IBAction)playMySound{
playerPlay = YES; // it's a bool variable used at an other place in the code
NSString *path;
if((path = [[NSBundle mainBundle]
pathForResource:[NSString stringWithFormat:@"%d", idsound ]
ofType:@"m4a"
inDirectory:@"sounds"]))
{
NSURL *url = [NSURL fileURLWithPath:path];
NSError *error;
myPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&error];
if (myPlayer == nil) {[myPlayer release]; return;}
myPlayer.delegate = self;
[myPlayer play];
}
else return;
}
任何意见,将不胜感激!
你好,谢谢你的建议!请原谅我在复制代码时犯的小错误:当然,正确的代码是“myPlayer.delegate = self”,而不是“myPlayer = self”!我会尝试与您的其他建议。 – Chrysotribax
'prepareToPlay'可能会诀窍。我在我的两个应用程序中使用过这样的代码,我使用的是iPhone 4S,没有任何问题。 – rckoenes
非常感谢您的建议:我在代码中添加了“preparetoplay”,并且工作正常。另外,我改变了“[myPlayer发布];返回;”与您的代码。当然更好! – Chrysotribax