7个版本 (1个稳定版)
1.0.0 | 2021年1月27日 |
---|---|
0.4.1 | 2021年1月19日 |
0.3.1 | 2021年1月7日 |
0.2.0 | 2021年1月7日 |
0.1.0 | 2021年1月6日 |
#887 in 音频
13KB
229 代码行
AudioSocket
AudioSocket是一个简单的基于TCP协议,用于发送和接收实时音频流。
用法
use std::{convert::TryFrom, str::FromStr};
use audiosocket::{Message, RawMessage, Type};
use uuid::Uuid;
// You may replace this with bytes from TCP socket, test file, etc.
let recv = [
// Message contains a stream identifier.
1u8,
// Payload length is 16 bytes.
0,
16,
// Payload with UUID.
4,
54,
67,
12,
43,
2,
98,
76,
32,
50,
87,
5,
1,
33,
43,
87
];
let raw_message = RawMessage::try_from(&recv[..]).unwrap();
assert_eq!(*raw_message.message_type(), Type::Identifier);
let message = Message::try_from(raw_message).unwrap();
assert_eq!(message, Message::Identifier(Uuid::from_str("0436430c-2b02-624c-2032-570501212b57").unwrap()))
lib.rs
:
AudioSocket是一个简单的基于TCP协议,用于发送和接收实时音频流。
此库是一个Go库的移植。
use std::{convert::TryFrom, str::FromStr};
use audiosocket::{Message, RawMessage, Type};
use uuid::Uuid;
let recv = [
// Message contains a stream identifier.
1u8,
// Payload length is 16 bytes.
0,
16,
// Payload with UUID.
4,
54,
67,
12,
43,
2,
98,
76,
32,
50,
87,
5,
1,
33,
43,
87
];
let raw_message = RawMessage::try_from(&recv[..]).unwrap();
assert_eq!(*raw_message.message_type(), Type::Identifier);
let message = Message::try_from(raw_message).unwrap();
assert_eq!(message, Message::Identifier(Uuid::from_str("0436430c-2b02-624c-2032-570501212b57").unwrap()))
依赖项
~1.5MB
~40K SLoC