我们的项目里面有腾信的IMSDK 也有短视频SDK,现在要添加超级播放器的SDK,因为是单独集成进去的,所以刚开始是没有问题的。再添加超级播放器的SDK的时候,出现了依赖库重复的问题,原因是IM和超级播放器的SDK用了相同的依赖库,所以会有冲突,我这里是前期用的是普通的SDK 后来换成专业版的SDK ,在集成专业版SDK的时候跟着腾讯提供的配置指南去做结果出现了下面的问题:
Undefined symbols for architecture arm64:
"_alGetSourcefv", referenced from:
-[TRAECDSoundSource pan] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alSourcePause", referenced from:
-[TRAECDSoundEngine pauseSound:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundSource pause] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alSourcePlay", referenced from:
-[TRAECDSoundEngine playSound:TRAEsourceGroupId:pitch:pan:gain:loop:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine resumeSound:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundSource play] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alListenerf", referenced from:
-[TRAECDSoundEngine setMasterGain:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine setMute:] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alGetListenerf", referenced from:
-[TRAECDSoundEngine masterGain] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alDeleteSources", referenced from:
-[TRAECDSoundEngine dealloc] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alBufferData", referenced from:
-[TRAECDSoundEngine loadBufferFromData:soundData:format:size:freq:] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alcGetContextsDevice", referenced from:
-[TRAECDSoundEngine dealloc] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alSourceStop", referenced from:
-[TRAECDSoundEngine unloadBuffer:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine playSound:TRAEsourceGroupId:pitch:pan:gain:loop:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine _soundSourceAttachToBuffer:soundId:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine stopTRAEsourceGroup:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine stopSound:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine stopAllSounds] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundSource stop] in TXLiteAVSDK_Professional(CocosDenshion.o)
...
"_alSourcefv", referenced from:
-[TRAECDSoundEngine playSound:TRAEsourceGroupId:pitch:pan:gain:loop:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundSource setPan:] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alcGetCurrentContext", referenced from:
-[TRAECDAudioManager badAlContextHandler] in TXLiteAVSDK_Professional(CDAudioManager.o)
-[TRAECDAudioManager audioSessionInterrupted] in TXLiteAVSDK_Professional(CDAudioManager.o)
-[TRAECDAudioManager audioSessionResumed] in TXLiteAVSDK_Professional(CDAudioManager.o)
-[TRAECDSoundEngine dealloc] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine playSound:TRAEsourceGroupId:pitch:pan:gain:loop:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundSource play] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alcMakeContextCurrent", referenced from:
-[TRAECDAudioManager audioSessionInterrupted] in TXLiteAVSDK_Professional(CDAudioManager.o)
-[TRAECDAudioManager audioSessionResumed] in TXLiteAVSDK_Professional(CDAudioManager.o)
-[TRAECDSoundEngine _initOpenAL] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine dealloc] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alcDestroyContext", referenced from:
-[TRAECDSoundEngine dealloc] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alcOpenDevice", referenced from:
-[TRAECDSoundEngine _initOpenAL] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alDeleteBuffers", referenced from:
-[TRAECDSoundEngine dealloc] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine unloadBuffer:] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alcCreateContext", referenced from:
-[TRAECDSoundEngine _initOpenAL] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alGenBuffers", referenced from:
-[TRAECDSoundEngine _generateBuffers:endIndex:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine unloadBuffer:] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alSourcef", referenced from:
-[TRAECDSoundEngine _testGetGain] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine playSound:TRAEsourceGroupId:pitch:pan:gain:loop:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine setGainOfEffect:withgain:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundSource setPitch:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundSource setGain:] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alcGetProcAddress", referenced from:
_qc_trae_TRAEalBufferDataStaticProc in TXLiteAVSDK_Professional(CocosDenshion.o)
_qc_trae_TRAEalcMacOSXMixerOutputRateProc in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine _initOpenAL] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alGetSourcef", referenced from:
-[TRAECDSoundEngine _testGetGain] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundSource pitch] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundSource gain] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundSource looping] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alSourceRewind", referenced from:
-[TRAECDSoundSource rewind] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alGetSourcei", referenced from:
-[TRAECDSoundEngine _getSourceIndexForTRAEsourceGroup:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine playSound:TRAEsourceGroupId:pitch:pan:gain:loop:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine _soundSourceAttachToBuffer:soundId:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine resumeSound:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundSource isPlaying] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alGenSources", referenced from:
-[TRAECDSoundEngine _generateSources] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alSourcei", referenced from:
-[TRAECDSoundEngine _generateSources] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine dealloc] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine unloadBuffer:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine playSound:TRAEsourceGroupId:pitch:pan:gain:loop:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine _soundSourceAttachToBuffer:soundId:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundSource setLooping:] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alcCloseDevice", referenced from:
-[TRAECDSoundEngine dealloc] in TXLiteAVSDK_Professional(CocosDenshion.o)
"_alGetError", referenced from:
-[TRAECDAudioManager audioSessionInterrupted] in TXLiteAVSDK_Professional(CDAudioManager.o)
-[TRAECDAudioManager audioSessionResumed] in TXLiteAVSDK_Professional(CDAudioManager.o)
-[TRAECDSoundEngine _generateSources] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine _generateBuffers:endIndex:] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine _initOpenAL] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine dealloc] in TXLiteAVSDK_Professional(CocosDenshion.o)
-[TRAECDSoundEngine unloadBuffer:] in TXLiteAVSDK_Professional(CocosDenshion.o)
...
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
出现这个的原因是因为少依赖了一个库腾讯的配置指南是这样提示的:
因为我集成的不是专业版的最后一个就没有添加,添加后就会出现上面的问题。再看他们的文档
缺少了最后一个依赖库
libz.tbd
libc++.tbd
libresolv.tbd
libsqlite3.tbd
Accelerate.framework
OpenAL.framework
把上面的那些集成进去就可以了。
在这里再说一下,如果你们的项目既需要短视频播放,又需要超级播放器,还有腾讯IM的话,可以用专业版的SDK 。IM的SDK可以单独集成,短视频的和超级播放器的SDK只需要集成一个专业版的就可以。如果只是单个的话,可以分开去集成。
网友评论