2013-07-23 4 views
3

У меня есть приложение, которое воспроизводит аудиофайлы с некоторыми записями голосов. Когда я его отлаживаю, у меня нет проблем с этим, когда я загружаю его из AppStore, он отлично работает, мои друзья используют его, и у них нет никаких проблем с приложением, но несколько человек со всего мира связались со мной чтобы сказать, что приложение не звучит.Звук не звучит в нескольких устройствах iOS

Это очень странно, потому что они говорят мне, что звук колокола (mp3 44100Hz, mono, 128kbps), который воспроизводит первые звуки, но голоса (mp3 44100Hz, stereo, 96kbps) не звучат. Люди, которые со мной общаются, имеют разные модели устройств и разные версии iOS 6.

Я использую AVAudioPlayer для воспроизведения файлов, и я думаю, что он работает хорошо.

У вас возникли те же проблемы?

Спасибо

UPDATE

Это 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"; 
+1

вы обеспечили, что их кнопка вибрирует не щелкнул? Я написал приложение для перевода, в котором пользователи просто отключили звук/поместили вибрирующую кнопку. Это кажется простым, но я получил почти 15 писем за это, без звука. lol – ApolloSoftware

+0

'AVAudioPlayer' использует настройки громкости устройства, а' AudioServicesCreateSystemSoundID' использует системный том (например, громкость предупреждений). Использует ли колокол API-интерфейс системы, а в остальном используется «AVAudioPlayer»? Возможно, звук отключен или полностью отключен. –

+0

Звук колокола отлично воспроизводится, поэтому вибрирующая кнопка перевернулась: D – torhector2

ответ

0

Вы обеспечили, что их кнопка вибрирует не переворачивается на ? Я написал приложение для перевода, в котором пользователи просто отключили звук/поместили вибрирующую кнопку. Это кажется простым, но для этого я получил почти 15 писем, говоря, что в приложении нет звука.

Кажется простым, но это решение является самым простым и быстрым решением. Вибрационный режим, отключает все аудио, даже для приложений.

Мой перевод Приложение использовало AVAudioPlayer, и ничего не было программно неправильно. Просто пользовательская ошибка.

0

Возможно, проблема с битрейтом звука может быть проблемой? Я действительно не знаю ...

Колокол, чем хорошо работает, имеет 128 Кбит/с, а аудиофайлы имеют 96 кбит/с, а иногда и не работают. Странно, что звук работает очень хорошо для 90% использования, но иногда терпит неудачу. Колокол вместо этого хорошо работает 100% раз.

:/

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]; 
+0

Странно, что я протестировал все языки и аудио, и все отлично работает на моих устройствах, но есть некоторые люди, у которых есть проблемы. – torhector2

+0

Как вы обрабатываете локализацию в своем проекте ?, У вас есть несколько строковых файлов? – LuisEspinoza

+0

Вы используете только один файл .string? – LuisEspinoza

0

Я недавно представила приложение, которое было, имеющее те же самые проблемы, но было отказано в связи с тем, что у меня не было установки «Inter-App Audio» в Xcode и в панели Сертификаты под информацией о приложении. Это может помочь.

В случае, если вы задаетесь вопросом, приложение является нарушением Раздел 2.13 из App Store Guidelines.

+0

Я не настраивал «Inter-App Audio» в Xcode и в портале Developer, но у меня есть «App play audio» в режимах Requiered Background. :/ – torhector2

+0

Не является ли «Inter-App Audio» функцией для iOS 7? Мое приложение - iOS6 – torhector2