Aurora System
相机、照片、传感器、音频和系统状态的实时事件入口。
相机、照片、传感器、音频和系统状态的实时事件入口。
#预期效果
示例会展示系统实时事件如何启动、收到回调并在结束时停止监听。
#适用场景
Aurora 原生实时信号入口,用于相机、照片、传感器、音频、键盘高度和深浅色变化。
#标准示例
已复制
import aurora_system
def handle_keyboard(height):
print("keyboard height", height)
aurora_system.on_keyboard_height(handle_keyboard)
aurora_system.system_state_setup()
# Later, when the page closes:
aurora_system.system_state_teardown()
#API 参考
| 类型 | API | 签名 | 说明 |
|---|---|---|---|
| function | camera_setup | camera_setup(position: str=...) -> bool | 初始化相机会话,position 常用 "back" 或 "front"。 |
| function | camera_capture | camera_capture(callback: Callable[[str], None] \| None=...) -> bool | 触发拍照,结果路径交给回调或 on_camera_result。 |
| function | camera_teardown | camera_teardown() -> Any | 停止相机并释放资源。 |
| function | photos_pick | photos_pick(callback: Callable[[list[str]], None] \| None=..., limit: int=..., filter: str=...) -> bool | 打开系统相册选择器。 |
| function | on_photos_picked | on_photos_picked(callback: Callable[[list[str]], None]) -> Any | 注册相册选择结果回调。 |
| function | sensor_start | sensor_start(hz: float=...) -> Any | 按指定频率启动陀螺仪和加速度数据流。 |
| function | sensor_stop | sensor_stop() -> Any | 停止传感器数据流。 |
| function | audio_start | audio_start(handle_base: int=...) -> bool | 启动麦克风采样并推送音频频段数据。 |
| function | audio_stop | audio_stop() -> bool | 停止麦克风采样并释放资源。 |
| function | system_state_setup | system_state_setup() -> Any | 开始监听键盘高度和界面深浅色变化。 |
| function | system_state_teardown | system_state_teardown() -> Any | 停止监听系统状态。 |
| function | on_camera_result | on_camera_result(callback: Callable[[str], None]) -> Any | 注册相机结果回调。 |
| function | on_keyboard_height | on_keyboard_height(callback: Callable[[float], None]) -> Any | 注册键盘高度变化回调。 |
| function | on_style_change | on_style_change(callback: Callable[[str], None]) -> Any | 注册浅色/深色界面变化回调。 |
#失败路径
| 情况 | 应该怎么处理 |
|---|---|
| 没有收到事件 | 确认已调用对应 setup/start 函数,并在退出时调用 teardown/stop。 |
| 权限未授权 | 先用 permission 查询或请求权限,再启动实时事件。 |
| 事件过于频繁 | 只保存需要展示的字段,必要时节流更新 AppUI 状态。 |
| 页面关闭后仍回调 | 在关闭、停止或异常路径里释放监听。 |
#使用规则
- 所有 setup/start 都要有 teardown/stop。
- 回调用命名函数,不要用 lambda 作为长期监听。
- 不要在回调里反复 appui.run() 或重建界面。