2016-01-21 2 views
1

У меня есть рабочий звуковой движок OPENSL ES, работающий над моим старым проектом в Eclipse, скомпилированный с Android NDK 9. И он отлично работает там с этой конфигурацией.OpenSL ES - Android Studio - NDK 10R

Когда я передал проект в студию Android, когда я пытаюсь воспроизвести любой звук, он сработает, когда он попытается создать CreateAudioPlayer. Помимо звуковой проблемы все работает нормально.

Я использую Android Studio 1.5.1, с плагином com.android.tools.build:gradle-experimental11.4.0 и NDK 10 R (последняя версия).

SLDataLocator_AndroidFD loc_fd = {SL_DATALOCATOR_ANDROIDFD, _FileDescriptor, cache_FileDescriptorStart, cache_FileDescriptorLength};   
SLDataFormat_MIME format_mime = {SL_DATAFORMAT_MIME, NULL, SL_CONTAINERTYPE_UNSPECIFIED}; 
audioSrc = {&loc_fd, &format_mime}; 

// configure audio sink 
SLDataLocator_OutputMix loc_outmix = {SL_DATALOCATOR_OUTPUTMIX, outputMixObject}; 
SLDataSink audioSnk = {&loc_outmix, NULL}; 

// create audio player 
const SLInterfaceID ids[3] = {SL_IID_SEEK, SL_IID_MUTESOLO, SL_IID_VOLUME}; 
const SLboolean req[3] = {SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE, SL_BOOLEAN_TRUE}; 

LOG("Sound: error with %s", _SoundName); 
result = (*engineEngine)->CreateAudioPlayer(engineEngine, &uriPlayerObject, &audioSrc,&audioSnk, 3, ids, req); 
LOG("playStream end"); 

Он врежется на этой линии:

result = (*engineEngine)->CreateAudioPlayer(engineEngine, &uriPlayerObject, &audioSrc,&audioSnk, 3, ids, req); 

Я проверил значение дескрипторов файлов, значение их идентификаторов, каждый аргумент, который входит в функцию CreateAudioPlayer и все выглядит хорошо для меня.

LogCat Безразлично `дать любое разумное сообщение, вот лог:

01-20 20:59:34.705 6256-6287/com.test.full W/google- breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ### 
01-20 20:59:34.706 6256-6287/com.test.full W/google-breakpad: Chrome build fingerprint: 
01-20 20:59:34.706 6256-6287/com.test.full W/google-breakpad: 2 
01-20 20:59:34.706 6256-6287/com.test.full W/google-breakpad: 869b37da-2f6d-4460-8f9f-e1bd9177efc1 
01-20 20:59:34.706 6256-6287/com.test.full W/google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ### 
01-20 20:59:34.706 6256-6287/com.test.full A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x1 in tid 6287 (GLThread 2240) 

Как я понимаю, проблема в Android NDK 10, так как он работает нормально, когда я скомпилировать его с версией 9.

У кого-нибудь были такие проблемы?

спасибо.

ответ

0

Я скомпилировал его с версией 9d, которая поддерживает multiDex и OpenSL ES в студии Android. Теперь он отлично работает.