3

我开发了一个应用程序,可以播放带有一些录音的音频文件。当我调试它时我没有问题,当我从 AppStore 下载它时它运行良好,我的朋友使用它并且他们对应用程序没有任何问题,但是来自世界各地的一些人与我联系告诉我该应用程序没有声音。

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

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

你遇到过同样的问题吗?

谢谢

更新

这是我拥有的 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";
4

4 回答 4

0

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

铃,比工作得好有 128kbps 和音频文件有 96kbps,有时不工作。奇怪的是,音频在 90% 的使用中效果很好,但有时会失败。相反,铃铛在 100% 的时间里都能正常工作。

:/

于 2013-07-24T08:09:19.257 回答
0

您是否确保他们的振动按钮没有被打开?我编写了一个翻译应用程序,用户只需静音/打开振动按钮即可。这看起来很简单,但仅此一项我就收到了近 15 封电子邮件,称该应用程序没有音频。

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

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

于 2013-07-23T19:29:03.487 回答
0

我最近提交了一个遇到同样问题的应用程序,但由于我没有在 Xcode 和应用程序信息下的证书窗格中设置“应用程序间音频”而被拒绝。这可能会有所帮助。

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

于 2013-07-31T23:28:01.957 回答
0

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

另外,检查您的代码:

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];
于 2013-07-26T11:48:06.487 回答