在unity3d 接入Android的时候出现如下问题.请问如何解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在unity3d 接入Android的时候出现如下问题.请问如何解决相关的知识,希望对你有一定的参考价值。

首先Unity3D对于r22版本SDK的支持还没有做好,需要r21版本或者更低的SDK来开发。
如果已经升级到r22的话
build时候会出现错误:
Error building Player: Exception: android (invokation failed)
ERROR: unknown error
........

解决方法:将$(android-sdk)/build-tools/17.0.0/下所有文件拷到$(android-sdk)/platform-tools/中问题就可以解决。
参考技术A http://blog.csdn.net/yucan1219/article/details/38373059 参考技术B http://blog.csdn.net/yucan1219/article/details/38373059

Android平台GB28181设备接入端如何调节实时音量?

我们在对接Android平台GB28181设备接入端的时候,有开发者提出这样的疑惑,如何调整设备接入端的实时音量?

实际上,这块我们前几年在做RTMP直播推送模块的时候,已经发布了相关的接口,这里再回顾下:

/*
* SmartPublisherJniV2.java
* Author: https://daniusdk.com
*/
/**
* 设置输入音量, 这个接口一般不建议调用, 在一些特殊情况下可能会用, 一般不建议放大音量
*
* @param index: 一般是0和1, 如果没有混音的只用0, 有混音的话, 0,1分别设置音量
*
* @param volume: 音量,默认是1.0,范围是[0.0, 5.0], 设置成0静音, 1音量不变
*
* @return 0 if successful
*/
public native int SmartPublisherSetInputAudioVolume(long handle, int index, float volume);

Android平台GB28181设备接入端如何调节实时音量?_GB28181音频

根据接口描述,我们可以很明确的知道,我们实时音量调节接口,一般建议在[0.0, 1.0]范围内设定,也就是说,设置0.0的时候,相当于实时静音,设置1.0的时候,是正常采集的音量。

考虑到有些设备采集到的音量比较小,我们做了一定的音量放大处理,volume范围设置在 [0.0, 5.0]区间,一般来说我们不太建议使用,或不建议放大范围过大,避免破音等不好的体验。

demo如下图,音量调节部分(选项置于实时静音按钮右侧,如果不需要精细化的处理,也可以用实时静音接口):Android平台GB28181设备接入端如何调节实时音量?_GB28181_02

Android平台GB28181设备接入端如何调节实时音量?_GB28181接入_03

接口调用,非常简单,demo默认加了几个常用的值,下拉选择即可:

in_audio_volume_selector_ = (Spinner) findViewById(R.id.in_audio_volume_selector);

final String[] in_audio_volume_sel = new String[] "0", "0.2", "0.5", "0.8","1", "1.5", "2", "2.5", "3", "3.5", "4", "4.5", "5";
ArrayAdapter<String> adapter_in_audio_volume = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, in_audio_volume_sel);

adapter_in_audio_volume.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
in_audio_volume_selector_.setAdapter(adapter_in_audio_volume);

in_audio_volume_selector_.setSelection(4, true);

in_audio_volume_selector_.setOnItemSelectedListener(new OnItemSelectedListener()

@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id)
Log.i(TAG, "Currently audio volume choosing: " + in_audio_volume_sel[position]);

in_audio_volume_ = Float.parseFloat(in_audio_volume_sel[position]);

Log.i(TAG, "Choose audio volume=" + in_audio_volume_);

if(isPushingRtmp || isRecording || isRTSPPublisherRunning || isGB28181StreamRunning)
if (libPublisher != null && publisherHandle != 0)
libPublisher.SmartPublisherSetInputAudioVolume(publisherHandle, 0 , in_audio_volume_);




@Override
public void onNothingSelected(AdapterView<?> parent)


);

感兴趣的开发者,可以自行参考实现。


以上是关于在unity3d 接入Android的时候出现如下问题.请问如何解决的主要内容,如果未能解决你的问题,请参考以下文章

Unity3d Android SDK接入解析Unity3d Android SDK的设计与两种接入方式

Unity3d Android SDK接入解析通用的Android SDK接入中间件

Unity3d Android SDK接入解析接入Android Library的理解(爱贝云支付为例)

Unity3d Android SDK接入解析Unity3d 与 Android之间的互相调用

Unity3D Android接入FCM推送

Unity3D 语音接入适用于pciosandroid