LiveKit Python SDKs 项目使用教程
1. 项目目录结构及介绍
LiveKit Python SDKs 项目包含了两个主要的包:
livekit
: 实时SDK,用于作为参与者连接到LiveKit。livekit-api
: 服务器API,用于访问令牌生成和服务器API。
项目的目录结构如下:
livekit-python-sdks/
├── examples/ # 示例代码目录
├── livekit/ # livekit 包目录
│ ├── __init__.py
│ ├── api/ # API相关模块
│ ├── rtc/ # 实时通信相关模块
│ └── ...
├── livekit-api/ # livekit-api 包目录
│ ├── __init__.py
│ ├── api/ # API相关模块
│ └── ...
├── .gitattributes
├── .gitignore
├── .gitmodules
├── LICENSE
├── NOTICE
├── README.md # 项目说明文件
├── dev-requirements.txt # 开发环境依赖
├── mypy.ini
└── ruff.toml
2. 项目的启动文件介绍
项目的启动文件主要是示例代码目录中的脚本。例如,examples/room_example.py
是一个用于连接到房间并处理实时视频、音频数据的示例脚本。
以下是一个简单的启动脚本示例:
from livekit import rtc
async def main():
# 创建房间实例
room = rtc.Room()
# 处理参与者连接事件
@room.on("participant_connected")
def on_participant_connected(participant):
print(f"participant connected: {participant.sid} {participant.identity}")
# 处理订阅轨道事件
@room.on("track_subscribed")
def on_track_subscribed(track, publication, participant):
print(f"track subscribed: {publication.sid}")
if track.kind == rtc.TrackKind.KIND_VIDEO:
video_stream = rtc.VideoStream(track)
asyncio.ensure_future(receive_frames(video_stream))
# 连接到房间
await room.connect(URL, TOKEN)
print(f"connected to room {room.name}")
# 运行主函数
if __name__ == "__main__":
asyncio.run(main())
在运行启动文件前,需要确保已经配置了正确的 URL
和 TOKEN
。
3. 项目的配置文件介绍
项目的配置文件主要涉及环境变量和依赖设置。
dev-requirements.txt
:包含开发环境所需的Python包依赖。mypy.ini
:用于配置MyPy静态类型检查工具的设置。ruff.toml
:用于配置Ruff代码风格检查工具的设置。
这些配置文件确保开发环境的统一和代码风格的规范。如果需要自定义配置,可以在这些文件中进行相应的修改。