OpenSL ES 查询设备支持的SL Profiles

opensl es 提供了三种类型:分别是 SL_PROFILES_PHONE(手机);SL_PROFILES_MUSIC(音乐); SL_PROFILES_GAME (游戏)。

如果你使用的手机的开发商使用了OpenSL ES 的话,会有一个类似于上面的sl配置。如果是手机的话,一般会是SL_PROFILES_PHONE 在android较低的版本下也就意味着某些Opensl es 的功能不可用。

下面是查询代码:

 1   SLObjectItf    _engineObject;
 2     SLresult    result;
 3     result = slCreateEngine(&_engineObject, 0, NULL, 0, NULL, NULL);
 4     assert(SL_RESULT_SUCCESS == result);
 5 
 6     result = (*_engineObject)->Realize(_engineObject, SL_BOOLEAN_FALSE);
 7     assert(SL_RESULT_SUCCESS == result);
 8 
 9     SLEngineCapabilitiesItf capabilities;
10     SLuint16 profilesSupported;        
11     result = (*_engineObject)->GetInterface(_engineObject, SL_IID_ENGINECAPABILITIES, &capabilities);
12     assert(SL_RESULT_SUCCESS == result);
13     result = (*capabilities)->QuerySupportedProfiles (capabilities, &profilesSupported);
14     assert(SL_RESULT_SUCCESS == result);
15     
16     if (profilesSupported & SL_PROFILES_PHONE)
17     {
18         //手机
19          LOGI("SL_PROFILES_PHONE");
20     }        
21     if (profilesSupported & SL_PROFILES_MUSIC)
22     {
23         //音乐
24          LOGI("SL_PROFILES_MUSIC");
25     }
26     if (profilesSupported & SL_PROFILES_GAME)
27     {
28         //游戏
29          LOGI("SL_PROFILES_GAME");
30      }

备注:可能有些设备获取不了引擎功能接口 SLEngineCapabilitiesItf;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值