grpc_client/protos/cmvr/api/speaker_command.proto

100 lines
2.2 KiB
Protocol Buffer
Raw Normal View History

2025-11-13 03:01:00 +08:00
syntax = "proto3";
import "cmvr/api/common.proto";
package cmvr.api;
// 音频数据格式(与麦克风类似,但用于输出)
message AudioData {
enum AudioFormat {
PCM = 0;
MP3 = 1;
AAC = 2;
WAV = 3;
}
bytes data = 1; // 音频二进制数据
int32 sample_rate = 2; // 采样率Hz
int32 channels = 3; // 声道数
AudioFormat format = 4; // 音频格式
string codec = 5; // 编码方式
}
// 扬声器状态
message SpeakerState {
bool is_initialized = 1; // 是否已初始化
bool is_running = 2; // 是否正在播放
bool is_decoding = 3;
bool is_paused = 5;
int32 volume = 6; // 当前音量0 ~ 100
string error_message = 7; // 错误信息
}
// 各种扬声器命令
message GetSpeakerStateCommand {
message Request {
CommandHeader.Request header = 1;
}
message Feedback {
CommandHeader.Feedback header = 1;
SpeakerState state = 2;
}
}
message PlayAudioCommand {
message Request {
CommandHeader.Request header = 1;
string audio_path = 2;
}
message Feedback { CommandHeader.Feedback header = 1; }
}
message StopSpeakerCommand {
message Request {
CommandHeader.Request header = 1;
}
message Feedback {
CommandHeader.Feedback header = 1;
}
}
message PauseSpeakerCommand {
message Request {
CommandHeader.Request header = 1;
}
message Feedback {
CommandHeader.Feedback header = 1;
}
}
message ResumeSpeakerCommand {
message Request {
CommandHeader.Request header = 1;
}
message Feedback {
CommandHeader.Feedback header = 1;
}
}
message SetSpeakerVolumeCommand {
message Request {
CommandHeader.Request header = 1;
int32 volume = 2; // 音量值0 ~ 100
}
message Feedback {
CommandHeader.Feedback header = 1;
}
}
message GetSpeakerVolumeCommand {
message Request {
CommandHeader.Request header = 1;
}
message Feedback {
CommandHeader.Feedback header = 1;
int32 volume = 2; // 当前音量值
}
}