少数iOS设备中没有声音

时间:2013-07-23 19:23:24

标签: ios audio mp3 avfoundation avaudioplayer

我开发了一个播放带有一些声音录音的音频文件的应用。当我调试它时,我没有任何问题,当我从AppStore下载它完美的工作,我的朋友使用它,他们没有任何问题的应用程序,但来自世界各地的一些人已经联系我告诉我应用程序没有声音。

这很奇怪,因为他们告诉我铃声(mp3 44100Hz,单声道,128kbps)首先发出声音但声音(mp3 44100Hz,立体声,96kbps)不响。与我联系的人有不同的设备型号和不同版本的iOS 6。

我使用AVAudioPlayer播放文件,我认为它运行良好。

您是否遇到过同样的问题?

谢谢

更新

这是我有的Localizable.strings

enter image description here

我像这样加载文件:

// 
NSString *fileLang = NSLocalizedString(aItem.fileName, nil);
//more code ...
thePlayerURL = [[NSBundle mainBundle] URLForResource:fileLang   withExtension:@"mp3"];
//more code ...
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL: aItem.urlAudio error:&error];
player.delegate = self;
[player prepareToPlay];

这是带有文件键和值的Localizable.strings的示例,默认情况下,键的名称是文件的西班牙语版本:

//AUDIO NAMES

"1_au_es" = "1_au_en";
"2_au_es" = "2_au_en";
"3_au_es" = "3_au_en";
"4_au_es" = "4_au_en";
"5_au_es" = "5_au_en";
"6_au_es" = "6_au_en";
"7_au_es" = "7_au_en";
"8_au_es" = "8_au_en";
"9_au_es" = "9_au_en";
"10_au_es" = "10_au_en";
"11_au_es" = "11_au_en";
"12_au_es" = "12_au_en";
"13_au_es" = "13_au_en";
"14_au_es" = "14_au_en";
"15_au_es" = "15_au_en";
"16_au_es" = "16_au_en";
"17_au_es" = "17_au_en";
"18_au_es" = "18_au_en";
"19_au_es" = "19_au_en";

4 个答案:

答案 0 :(得分:0)

您是否确保他们的振动按钮没有打开?我写了一个翻译应用程序,让用户只需将振动按钮打开静音。这看起来很简单,但我已经收到了近15封电子邮件,说应用程序没有音频。

看起来很简单,但该解决方案是最简单,最快捷的解决方案。振动模式,关闭所有音频,甚至是应用程序。

我的翻译应用程序使用AVAudioPlayer,并没有任何编程错误。只是用户错误。

答案 1 :(得分:0)

也许音频比特率可能是问题?我真的不知道......

铃声,效果不错,有128kbps,音频文件有96kbps,有时不起作用。奇怪的是,音频在90%的用途中运行良好但有时会失败。铃声反而很好地运行了100%。

:/

答案 2 :(得分:0)

如果不检查Xcode项目配置,很难找到解决此问题的精确解决方案。但是,根据您在评论中提到的信息,我怀疑问题必须与Localization字符串相关。检查您的本地化配置,检查您是否正确使用了本地化字符串文件,检查您是否为每个支持的本地化写了有效的文件名。

另外,检查您的代码:

NSString *fileLang = NSLocalizedString(aItem.fileName, nil);
//more code ...
thePlayerURL = [[NSBundle mainBundle] URLForResource:fileLang   withExtension:@"mp3"];
//more code ...
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL: aItem.urlAudio error:&error];
player.delegate = self;
[player prepareToPlay];

为什么你没有使用“thePlayerURL”?也许这就是问题,因为是“本地化的URL”。我希望:

NSString *fileLang = NSLocalizedString(aItem.fileName, nil);
//more code ...
thePlayerURL = [[NSBundle mainBundle] URLForResource:fileLang   withExtension:@"mp3"];
//more code ...
AVAudioPlayer *player = [[AVAudioPlayer alloc] initWithContentsOfURL:thePlayerURL error:&error];
player.delegate = self;
[player prepareToPlay];

答案 3 :(得分:0)

我最近提交了一个具有相同问题的应用程序,但由于我没有在Xcode和应用程序信息下的“证书”窗格中设置“Inter-App Audio”,因此被拒绝了。这可能有所帮助。

如果您想知道,该应用程序违反了App Store Guidelines.

第2.13节