| | |
| | | import android.content.Context; |
| | | import android.content.Intent; |
| | | import android.content.ServiceConnection; |
| | | import android.media.MediaPlayer; |
| | | import android.os.Build; |
| | | import android.os.IBinder; |
| | | import android.util.Log; |
| | |
| | | private volatile static HDLLinphoneKit instance; |
| | | private Context viewContext; |
| | | private ServiceWaitThread mServiceWaitThread; |
| | | private String mUsername, mPassword, mServerIP; |
| | | private String mUsername, mPassword, mServerIP,mTransportType; |
| | | // private TextureView mRenderingView, mPreviewView; |
| | | private boolean isAutoJumpCallView;//是否自动跳转呼叫页面 |
| | | private String intercomeType; |
| | | |
| | | /** |
| | | * 铃声播放器 |
| | | */ |
| | | private MediaPlayer mediaPlayer; |
| | | |
| | | /** |
| | | * 未接事件触发时间 |
| | | */ |
| | | public int missedCallsTime = 30; |
| | | |
| | | |
| | | private HDLLinphoneKit() { |
| | | |
| | | } |
| | | |
| | | private void InitMediaPlayer(Context context) { |
| | | if (mediaPlayer == null) { |
| | | try { |
| | | mediaPlayer = MediaPlayer.create(context, R.raw.oldphone_mono); |
| | | } catch (Exception ex) { |
| | | |
| | | } |
| | | } |
| | | } |
| | | |
| | | public boolean getMediaPlayerPlayingStatus(){ |
| | | if (mediaPlayer != null){ |
| | | return mediaPlayer.isPlaying(); |
| | | } |
| | | return false; |
| | | } |
| | | |
| | | |
| | | // 播放铃声 |
| | | public void playRingtone() { |
| | | if (mediaPlayer != null && !mediaPlayer.isPlaying()) { |
| | | mediaPlayer.start(); // 开始播放 |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 是否循环播放铃声 |
| | | * @param isLooping |
| | | */ |
| | | public void setMediaPlayerLooping(boolean isLooping) { |
| | | mediaPlayer.setLooping(isLooping); |
| | | } |
| | | |
| | | // 停止铃声 |
| | | public void stopRingtone() { |
| | | if (mediaPlayer != null && mediaPlayer.isPlaying()) { |
| | | mediaPlayer.stop(); // 停止播放 |
| | | // mediaPlayer.reset(); // 重置 MediaPlayer |
| | | // mediaPlayer.release(); // 释放资源 |
| | | // mediaPlayer = null; |
| | | } |
| | | } |
| | | |
| | | public void releaseRingtone(){ |
| | | if (mediaPlayer != null ) { |
| | | mediaPlayer.release(); // 释放资源 |
| | | mediaPlayer = null; |
| | | } |
| | | } |
| | | |
| | | /** |
| | |
| | | viewContext = context.getApplicationContext(); |
| | | if (!HDLLinphoneService.isReady()) { |
| | | CheckIfNeedstartService(); |
| | | InitMediaPlayer(context); |
| | | } else { |
| | | } |
| | | } |
| | |
| | | mPassword = password; |
| | | mServerIP = serverIP; |
| | | intercomeType = inter_type; |
| | | mTransportType = "UDP"; |
| | | login(inter_type); |
| | | } |
| | | |
| | | public void setAccountAndLogin(String username, String password, String serverIP, String inter_type, String transportType) { |
| | | mUsername = username; |
| | | mPassword = password; |
| | | mServerIP = serverIP; |
| | | mTransportType = transportType; |
| | | intercomeType = inter_type; |
| | | login(inter_type); |
| | | } |
| | | |
| | |
| | | } |
| | | if (inter_type.equals(INTER_PHONE_TYPE_FREEVIEW)) { |
| | | // 全视通可视对讲注册 |
| | | freeViewRegisterUserAuth(mUsername, mPassword, mServerIP); |
| | | freeViewRegisterUserAuth(mUsername, mPassword, mServerIP,mTransportType); |
| | | } else { |
| | | // 其他可视对讲注册 |
| | | registerUserAuth(mUsername, mPassword, mServerIP); |
| | | registerUserAuth(mUsername, mPassword, mServerIP,mTransportType); |
| | | } |
| | | } catch (CoreException e) { |
| | | e.printStackTrace(); |
| | |
| | | * @param host |
| | | * @throws CoreException |
| | | */ |
| | | public void registerUserAuth(String name, String password, String host) throws CoreException { |
| | | public void registerUserAuth(String name, String password, String host,String transportType) throws CoreException { |
| | | Core mLinphoneCore = HDLLinphoneService.getCore(); |
| | | if (mLinphoneCore == null) return; |
| | | |
| | |
| | | mAccountCreator.setUsername(name); |
| | | mAccountCreator.setDomain(host); |
| | | mAccountCreator.setPassword(password); |
| | | mAccountCreator.setTransport(TransportType.Udp); |
| | | switch (transportType.toUpperCase()){ |
| | | case "UDP": |
| | | mAccountCreator.setTransport(TransportType.Udp); |
| | | Log.i("linphone", "setting : TransportType.Udp"); |
| | | break; |
| | | case "TCP": |
| | | mAccountCreator.setTransport(TransportType.Tcp); |
| | | Log.i("linphone", "setting : TransportType.Tcp"); |
| | | break; |
| | | default: |
| | | mAccountCreator.setTransport(TransportType.Udp); |
| | | Log.i("linphone", "default : TransportType.Udp"); |
| | | break; |
| | | } |
| | | ProxyConfig prxCfg = mAccountCreator.createProxyConfig(); |
| | | |
| | | prxCfg.enableQualityReporting(false); |
| | |
| | | * |
| | | * @throws CoreException |
| | | */ |
| | | public void freeViewRegisterUserAuth(String userName, String password, String domain) throws CoreException { |
| | | public void freeViewRegisterUserAuth(String userName, String password, String domain,String transportType) throws CoreException { |
| | | Core mLinphoneCore = HDLLinphoneService.getCore(); |
| | | if (mLinphoneCore == null) return; |
| | | |
| | |
| | | mAccountCreator.setUsername(userName); |
| | | mAccountCreator.setDomain("yun"); |
| | | mAccountCreator.setPassword(password); |
| | | mAccountCreator.setTransport(TransportType.Udp); |
| | | |
| | | switch (transportType.toUpperCase()){ |
| | | case "UDP": |
| | | mAccountCreator.setTransport(TransportType.Udp); |
| | | Log.i("linphone", "setting : TransportType.Udp"); |
| | | break; |
| | | case "TCP": |
| | | mAccountCreator.setTransport(TransportType.Tcp); |
| | | Log.i("linphone", "setting : TransportType.Tcp"); |
| | | break; |
| | | default: |
| | | mAccountCreator.setTransport(TransportType.Udp); |
| | | Log.i("linphone", "default : TransportType.Udp"); |
| | | break; |
| | | } |
| | | |
| | | ProxyConfig prxCfg = mAccountCreator.createProxyConfig(); |
| | | prxCfg.enableQualityReporting(false); |