繁体   English   中英

少数iOS设备中没有声音

[英]Audio doesn't sound in a few iOS devices

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

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

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

你有同样的问题吗?

谢谢

UPDATE

这是我拥有的Localizable.strings

在此输入图像描述

我像这样加载文件:

// 
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";

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

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

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

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

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

:/

如果不检查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];

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

如果您想知道,该应用程序违反了App Store指南第2.13节

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM