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 音频

MIT 许可证

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