fuliqi
2024-08-29 4163c93761115c7524ef74a557a1f5e01eafb429
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package com.ycl.api.YS.liveview.live;
 
import com.ycl.api.YS.NetDemo;
 
import javax.swing.*;
 
/**
 * 
 * @introduction Voice intercom
 * @description Support special device with voice intercom
 */
public class Talk {
 
    /**
     * 
     * @introduction Start voice intercom
     * @description Calling the interface of NETDEV_StartVoiceCom
     *
     */
    public static void startTalk() {    
          if(null == NetDemo.lpUserID)
            {
                JOptionPane.showMessageDialog(null, "Please Login device first. error code"+NetDemo.netdevsdk.NETDEV_GetLastError());
                return;
            }
 
        NetDemo.lpTalkHandle = NetDemo.netdevsdk.NETDEV_StartVoiceCom(NetDemo.lpUserID, NetDemo.ChannelID, NetDemo.fDecodeAudioDataCallBack,null);
        if(null == NetDemo.lpTalkHandle){
            JOptionPane.showMessageDialog(null, "Start Talk failed.Please check if the control device supports voice talk.");
        }
        else{
            NetDemo.jButtonStartTalk.setEnabled(false);
            NetDemo.jButtonStopTalk.setEnabled(true);
            NetDemo.jButtonMic.setEnabled(true);
            NetDemo.jSliderLiveMicSound.setEnabled(true);
            
            if(NetDemo.lpPlayHandle==null){
                NetDemo.getMute2=1;
                NetDemo.netdevsdk.NETDEV_SetMuteStatus(NetDemo.lpTalkHandle,NetDemo.getMute2);
                NetDemo.netdevsdk.NETDEV_OpenSound(NetDemo.lpTalkHandle);
            }else{
                NetDemo.netdevsdk.NETDEV_SetMuteStatus(NetDemo.lpTalkHandle,1);
                NetDemo.netdevsdk.NETDEV_OpenSound(NetDemo.lpTalkHandle);
                NetDemo.netdevsdk.NETDEV_SetMuteStatus(NetDemo.lpPlayHandle,1);
                NetDemo.netdevsdk.NETDEV_OpenSound(NetDemo.lpPlayHandle);
            }
            NetDemo.jSliderLiveSound.setEnabled(true);
                        
            if(NetDemo.jLableLiveMicSound.getText().equals("0")) {
                if(NetDemo.lpTalkHandle!=null) {
                    NetDemo.netdevsdk.NETDEV_CloseMic(NetDemo.lpTalkHandle);
                }
            }else {
                if(NetDemo.lpTalkHandle!=null) {
                    NetDemo.netdevsdk.NETDEV_OpenMic(NetDemo.lpTalkHandle);
                }
            }
            NetDemo.jSliderLiveSound.setValue(120);
        }
    }
 
    /**
     * 
     * @introduction Stop voice intercom
     * @description Call NETDEV_StopVoiceCom to stop voice intercom
     *
     */
    public static void stopTak() {
        if(null != NetDemo.lpTalkHandle){
            NetDemo.netdevsdk.NETDEV_StopVoiceCom(NetDemo.lpTalkHandle);
            NetDemo.lpTalkHandle = null;
            NetDemo.jButtonStartTalk.setEnabled(true);
            NetDemo.jButtonStopTalk.setEnabled(false);
            NetDemo.jSliderLiveMicSound.setEnabled(false);
        }
    }
}