2 Commits fb90d7e897 ... 47d4da8053

Auteur SHA1 Message Date
  terry 47d4da8053 IP音柱加入音量和语速配置 il y a 8 mois
  terry 2bfebc9371 IP音柱加入音量和语速配置 il y a 8 mois
4 fichiers modifiés avec 21 ajouts et 13 suppressions
  1. 2 0
      config.yaml
  2. 11 9
      lc/model/speaker.go
  3. 1 1
      lc/server.go
  4. 7 3
      lc/speaker.go

+ 2 - 0
config.yaml

@@ -25,4 +25,6 @@ screens:
 speakers:
   - name: "主路1输出设备"
     ip: "192.168.1.160"
+    speed: 50
+    volume: 30
     branch: 0

+ 11 - 9
lc/model/speaker.go

@@ -4,18 +4,20 @@ type SpeakerInfo struct {
 	Name   string `yaml:"name"`
 	Ip     string `yaml:"ip"`
 	Branch byte   `yaml:"branch"`
+	Speed  byte   `yaml:"branch"`
+	Volume byte   `yaml:"branch"`
 }
 
 type PlayReq struct {
-	Url    string //要播放的⽹络⾳频 http/https/rtsp等⾳频地址
-	Text   string //要播放的本内容
-	Vcn    string // 发⾳⼈ xiaofeng xiaoyan
-	Speed  int    //发⾳速度 0-100 默认50
-	Volume int    //⾳量 0-100 默认50
-	Rdn    string //数字发 0 数值优先, 1 完全数值, 2 完全字符串, 3 字符串优先 默认2
-	Rcn    string //数字1 的中⽂发⾳ 0:表示发⾳为yao 1:表示发⾳为yi 默认0
-	Reg    byte   //英⽂发⾳ 0:⾃动识别英语单词; 1:逐个字⺟发⾳
-	Sync   bool   //true: 同步模式,语播放完毕后再响应; false:即时响应(不等待播放完成)
+	Url    string //要播放的网络音频 http/https/rtsp等⾳频地址
+	Text   string //要播放的本内容
+	Vcn    string //发音人 xiaofeng xiaoyan
+	Speed  byte   //发音速度 0-100 默认50
+	Volume byte   //音量 0-100 默认50
+	Rdn    string //数字发 0 数值优先, 1 完全数值, 2 完全字符串, 3 字符串优先 默认2
+	Rcn    string //数字1 的中文发音 0:表示发⾳为yao 1:表示发音为yi 默认0
+	Reg    byte   //英文发音 0:⾃动识别英语单词; 1:逐个字母发音
+	Sync   bool   //true: 同步模式,语播放完毕后再响应; false:即时响应(不等待播放完成)
 	Queue  bool   //true: 队列模式,如果当前有语⾳在播放,则加到队列排队播放
 	Loop   LoopInfo
 }

+ 1 - 1
lc/server.go

@@ -100,7 +100,7 @@ func (is *IntersectionServer) Serve() {
 				Ip:     c.Ip,
 				Branch: c.Branch,
 			},
-			Speaker: NewIpCast(c.Name, c.Ip),
+			Speaker: NewIpCast(c.Name, c.Ip, c.Speed, c.Volume),
 		}
 		if c.Branch == 1 {
 			is.MainDevices = append(is.MainDevices, iDevice)

+ 7 - 3
lc/speaker.go

@@ -17,13 +17,17 @@ type Loudspeaker interface {
 type IpCast struct {
 	Name      string
 	Ip        string
+	Speed     byte
+	Volume    byte
 	liveState bool
 }
 
-func NewIpCast(name, ip string) *IpCast {
+func NewIpCast(name, ip string, speed, volume byte) *IpCast {
 	s := &IpCast{
 		Name:      name,
 		Ip:        ip,
+		Speed:     speed,
+		Volume:    volume,
 		liveState: false,
 	}
 	s.Reconnect()
@@ -34,8 +38,8 @@ func (ip *IpCast) Speak(txt string) {
 	data := &model.PlayReq{
 		Text:   txt,
 		Vcn:    "xiaoyan",
-		Speed:  50, // todo 配置文件
-		Volume: 10, // todo 配置文件
+		Speed:  ip.Speed,
+		Volume: ip.Volume,
 		Rdn:    "2",
 		Rcn:    "1",
 		Reg:    0,