title: 多房間控制SDK for Android(V 0.2)
tags: AuxdioProtocol,SDK,API文檔說明
-
功能概述
本SDK集成了多房間多設備的控制操作,控制的設備類型主要有DM836II、DM838、AM8318、AM8328四種設備。
主要功能有 搜索設備、查詢設備分區/房間、查詢設備音源、查詢分區/房間狀態、查詢分區房間開關機、查詢設備目錄、查詢設備歌曲、播放設備歌曲、查詢網絡電臺、播放網絡電臺、添加/刪除自定義電臺到設備、播放模式、音量等一系列功能
-
示例演示
-
1.獲取設備廣播實例,搜索設備
```
AuxUdpBroadcast.getInstace() // 獲取設備廣播實例
.setSearchDevicePeriod(5000) // 設置搜索設備周期(每5s查詢一次)
.searchDevice(this); // 搜索設備,并實現AuxSreachDeviceListener接口
```
-
2.獲取設備單播實例,設置控制設備
```
AuxUdpUnicast.getInstance() // 獲取設備單播實例
.setControlDeviceEntity(auxDeviceEntity); // 設置控制設備
```
-
3.獲取設備分區/房間列表
```
AuxUdpUnicast.getInstance() // 獲取設備單播實例
.requestDeviceRoomList(deviceEntity.getDevIP(), this); //請求設備分區/房間列表
```
-
4.查詢設備分區/房間狀態
AuxUdpUnicast.getInstance() // 獲取設備單播實例 .setRequestRoomStatePeriod(5000) //設置查詢分區/房間的時間周期(每5s查詢一次) .requestDeviceRoomState(deviceEntity.getDevIP(),this); // 請求設備房間列表
-
5.獲取設備音源列表
```
AuxUdpUnicast.getInstance() // 獲取設備單播實例
.requestDeviceSourceList(deviceEntity.getDevIP(), this) // 請求設備音源列表
```
-
6.其他...
- 查詢設置操作(查詢分區/房間狀態、查詢/設置 房間/分區開關機、查詢節目名稱、查詢播放狀態、查詢/設置音源、查詢/設置靜音狀態、查詢/設置播放模式)
- 控制房間操作(音源切換、播放/暫停、上一曲、下一曲、播放電臺、播放設備歌曲、音量調節、播放模式切換等操作)
-
廣播操作
-
獲取設備廣播實例
```
AuxUdpBroadcast.getInstace();
```
-
搜索設備
searchDevice(AuxSreachDeviceListener listener),listener 回調搜索到的設備
AuxUdpBroadcast auxUdpBroadcast = AuxUdpBroadcast.getInstace(); auxUdpBroadcast.searchDevice(new AuxSreachDeviceListener() { @Override public void onSreachDevice(AuxDeviceEntity auxDeviceEntity) { //auxDeviceEntity 搜索到的設備 } });
或者
auxUdpBroadcast.searchDevice(this);//需要實現接口
-
設置搜索設備監聽
setSreachDeviceListener(AuxSreachDeviceListener listener) ,listener 監聽搜索到的設備
auxUdpBroadcast.setSreachDeviceListener(this);
-
設置搜索設備的搜索周期
setSearchDevicePeriod(int period),period小于0,則搜索一次,否則間隔period毫秒搜索一次
auxUdpBroadcast.setSearchDevicePeriod(2000);
-
設置音效改變監聽器
setSoundEffectChangedListener(AuxDeviceStateChangedListener.SoundEffectChangedListener listener),listener 監聽音效改變
auxUdpBroadcast.setSoundEffectChangeListener(this);
-
設置電臺連接狀態監聽器
setRadioConnectListener(AuxRadioActionListener.RadioConnectListener listener),listener電臺連接狀態監聽
auxUdpBroadcast.setRadioConnectListener(this);
-
設置設備狀態改變監聽
setDeviceStateChangedListener(AuxDeviceStateChangedListener listener),listener 監聽設備狀態(音源改變、播放狀態改變、播放節目源改變、播放模式、USB插入拔出)
auxUdpBroadcast.setDeviceStateChangeListener(this);
-
單播操作
-
獲取設備單播實例
AuxUdpUnicast.getInstance()
-
查詢設備版本
requestDeviceVersion(AuxRequestDeviceVersionListener listener) ,listener設備版本監聽
auxUdpUnicast.requestDeviceVersion(listener);
-
設置當前控制的設備
setControlDeviceEntity(AuxDeviceEntity controlDeviceEntity) ,controlDeviceEntity 設備對象
auxUdpUnicast.setControlDeviceEntity(controlDeviceEntity);
-
獲取控制的設備對象
getControlDeviceEntity() ,未調用setControlDeviceEntity()方法,則返回為空
auxUdpUnicast.getControlDeviceEntity();
-
設置控制的分區/房間
setAuxControlRoomEntities(AuxRoomEntity[] auxControlRoomEntities),auxControlRoomEntities 分區/房間數組,可以同時控制多個分區/房間
auxUdpUnicast.setAuxControlRoomEntities(auxControlRoomEntities);
-
獲取控制的分區/房間
getAuxControlRoomEntities() ,返回值為AuxChannelEntity[]
auxUdpUnicast.getAuxControlRoomEntities();
-
查詢設備分區/房間列表
requestDeviceRoomList(String devIP,AuxRoomStateChangedListener listener),devIP 設備IP,listener 分區改變監聽
auxUdpUnicast.requestDeviceRoomList(devIP,listener);
-
設置查詢設備分區/房間狀態的查詢周期
setRequestRoomStatePeriod(int period) ,period小于1000,則間隔1s查詢一次,否則間隔period毫秒搜索一次
auxUdpUnicast.setRequestRoomStatePeriod(period);
-
查詢設備分區/房間狀態
requestDeviceRoomState(String devIP,AuxRoomStateChangedListener listener),devIP 設備IP,listener 分區改變監聽
auxUdpUnicast.requestDeviceRoomState(devIP,listener);
-
查詢設備目錄和歌曲列表
requestDevicePlayList(String devIP,AuxRequestPlayListListener listener), devIP 設備IP,listener 查詢設備歌曲監聽器
auxUdpUnicast.requestDevicePlayList(devIP,listener);
-
查詢設備音源列表
requestDeviceSourceList(String devIP,AuxRequestSourceListener listener), devIP 設備IP,listener 查詢設備音源監聽器
auxUdpUnicast.requestDeviceSourceList(devIP,listener);
-
查詢分區開關機
requestRoomOnOffState(AuxRoomStateChangedListener.RoomOnOffListener listener)
auxUdpUnicast.requestRoomOnOffState(listener);
-
設置分區開關機
setRoomOnOffState(boolean isOn),isOn 開關機狀態,true為開機,false為關機
auxUdpUnicast.setRoomOnOffState(isOn);
-
設置音源別名
setSourceName(int srcID, String newName),srcID 音源ID,newName 音源名
auxUdpUnicast.setSourceName(srcID,newName);
-
查詢分區音量值
requestVolume(AuxChannelEntity[] channelEntities, AuxControlActionListener.ControlVolumeListener listener),channelEntities 分區/房間數組,listener 音量值監聽
auxUdpUnicast.queryVolume(channelEntities,listener);
-
設置分區音量值
setVolume(AuxChannelEntity[] roomEntities, int volume),roomEntities 分區/房間數組,volume 音量值(0~100)
auxUdpUnicast.setVolume(roomEntities,volume);
-
查詢分區音源ID
requestSrcID(AuxRoomEntity[] roomEntities, AuxControlActionListener.ControlSrcIDListener listener) ,roomEntities 分區/房間數組,listener 音源ID監聽
auxUdpUnicast.requestSrcID(roomEntities,listener);
-
設置分區音源ID
setSrcID(AuxRoomEntity[] roomEntities, int srcID),roomEntities 分區/房間數組,srcID 音源ID
auxUdpUnicast.setSrcID(roomEntities,srcID);
-
查詢音效
requestSoundEffect(AuxRoomEntity[] roomEntities, AuxControlActionListener.SoundEffectListener listener),roomEntities 分區/房間數組,listener 音效監聽
auxUdpUnicast.requestSoundEffect(roomEntities,listener);
-
設置音效
setSoundEffect(AuxRoomEntity[] roomEntities, int SoundEffect),roomEntities 分區/房間數組,SoundEffect 音效值
auxUdpUnicast.setSoundEffect(roomEntities,SoundEffect);
-
查詢播放模式
requestPlayMode(AuxRoomEntity[] roomEntities, AuxControlActionListener.ControlPlayModeListener listener) ,roomEntities 分區/房間數組,listener 播放模式監聽
auxUdpUnicast.requestPlayMode(roomEntities,listener);
-
設置播放模式
setPlayMode(AuxRoomEntity[] roomEntities, int playMode) ,roomEntities 分區/房間數組,playMode 播放模式值
auxUdpUnicast.setPlayMode(roomEntities,playMode);
-
查詢播放狀態
requestPlayState(AuxRoomEntity[] roomEntities, AuxControlActionListener.ControlPlayStateListener listener) ,roomEntities 分區/房間數組,listener 播放狀態監聽
auxUdpUnicast.requestPlayState(roomEntities,listener);
-
設置播放狀態
setPlayState(AuxChannelEntity[] roomEntities, int playState) ,roomEntities 分區/房間數組,playState 播放狀態值
auxUdpUnicast.setPlayState(roomEntities,playState);
-
查詢靜音狀態
requestMuteState(AuxChannelEntity[] roomEntities, AuxControlActionListener.ControlMuteStateListener listener) ,roomEntities 分區/房間數組,listener 靜音狀態監聽
auxUdpUnicast.queryMuteState(roomEntities,listener);
-
設置靜音狀態
setMuteState(AuxChannelEntity[] roomEntities, boolean isMute) ,roomEntities 分區/房間數組,isMute 是否為靜音,true為靜音,false為不靜音
auxUdpUnicast.setMuteState(roomEntities,isMute);
-
上一曲播放
prevProgram(AuxChannelEntity[] roomEntities) ,roomEntities 分區/房間數組
auxUdpUnicast.prevProgram(roomEntities);
-
下一曲播放
nextProgram(AuxChannelEntity[] roomEntities) ,roomEntities 分區/房間數組
auxUdpUnicast.next(roomEntities);
-
查詢播放的節目名稱
requestProgramName(AuxChannelEntity[] roomEntities, AuxControlActionListener.ControlProgramNameListener listener),roomEntities 分區/房間數組,listener節目名稱監聽
auxUdpUnicast.requestProgramName(roomEntities,listener);
-
添加一個網絡電臺
addNetRadio(AuxNetRadioEntity radioEntity) ,radioEntity電臺對象
auxUdpUnicast.addNetRadio(radioEntity);
-
刪除一個網絡電臺
delNetRadio(AuxNetRadioEntity radioEntity) ,radioEntity電臺對象
auxUdpUnicast.delNetRadio(radioEntity);
-
獲取電臺數據
requestRadioData(AuxRequestRadioListener listener),listener電臺監聽器
auxUdpUnicast.requestRadioData(listener);
-
播放網絡電臺
playRadio(int modelID, AuxNetRadioEntity radioEntity) modelID模塊ID,radioEntity 電臺對象
auxUdpUnicast.playRadio(modelID,radioEntity);
-
播放本地音樂
playSong(AuxMusicEntity auxMusicEntity) , auxMusicEntity 音樂對象
auxUdpUnicast.playSong(auxMusicEntity);
-
屬性定義
-
音源ID定義
| 音源 | 值 |
| --------- | ---- | --- | --- |
| Internal Music(內置音樂) | 0x01 |
| Net Paging(網絡尋呼) | 0x02 |
| FM | 0x11 |
| TUNER | 0x21 |
| TV | 0x31 |
| DVD | 0x41 |
| AUX1 | 0x51 |
| AUX2 | 0x52 |
| MP3(USB) | 0x81 |
| SD | 0x91 |
| BLUETOOTH | 0xA1 |
| DLNA | 0xB1 |
| Net Radio | 0xC1 |
| Net Music | 0xD1 |
-
音效ID定義
| 音效 | 值 |
| --------- | ---- | --- | --- |
| Normal(標準) | 0x01 |
| Pop(流行) | 0x02 |
| Classical(古典) | 0x03 |
| Jazz(爵士) | 0x04 |
| Rock(搖滾) | 0x05 |
| Vocal(人聲) | 0x06 |
| Metal(金屬) | 0x07 |
| Sentimental(傷感) | 0x08 |
| Dance(舞曲) | 0x09 |
| Custom(自定義) | 0x0A | -
播放模式定義
播放模式 值 單曲播放 0x01 單曲循環 0x02 順序播放 0x03 列表循環 0x04 隨機播放 0x05 -
播放狀態定義
播放狀態 值 播放 0x01 暫停 0x02