Flutter插件upnped的特性与使用方法
Flutter插件upnped的特性与使用方法
upnped
A Dart library for discovering and controlling UPnP devices.
Flutter插件upnped的特性
此包部分实现了UPnP 2.0架构,并支持以下UPnP服务器功能:
- UPnP发现
- 设备和服务信息
- 非标准厂商扩展
- 服务控制
- 事件监控
安装
从pub安装:
flutter pub add upnped
或者在pubspec.yaml
文件中添加依赖项:
dependencies:
upnped: <latest_version>
快速开始
以下是一个简单的示例,展示如何使用upnped库来发现UPnP设备。
import 'package:upnped/upnped.dart';
Future<void> main() async {
// 获取UPnP服务器实例
final server = Server.getInstance();
// 监听发现的设备
server.devices.listen((Device event) {
print('发现了一个设备: ${event}');
});
// 开始监听UPnP设备
await server.listen(Options());
// 搜索UPnP设备
await server.search();
// 停止监听
await server.stop();
}
文档
示例代码
快速开始
快速开始示例展示了如何使用upnped库来发现UPnP设备。
// 导入upnped库
import 'package:upnped/upnped.dart';
// 主函数
Future<void> main() async {
// 获取UPnP服务器实例
final server = Server.getInstance();
// 监听发现的设备
server.devices.listen((Device event) {
print('发现了一个设备: ${event}');
});
// 开始监听UPnP设备
await server.listen(Options());
// 搜索UPnP设备
await server.search();
// 停止监听
await server.stop();
}
发现过滤器
通过设置过滤器,可以更精确地搜索特定类型的UPnP设备。
// 导入upnped库
import 'package:upnped/upnped.dart';
// 主函数
Future<void> main() async {
// 获取UPnP服务器实例
final server = Server.getInstance();
// 设置过滤器
server.options.filter = 'urn:schemas-upnp-org:service:ContentDirectory:1';
// 监听发现的设备
server.devices.listen((Device event) {
print('发现了一个设备: ${event}');
});
// 开始监听UPnP设备
await server.listen(Options());
// 搜索UPnP设备
await server.search();
// 停止监听
await server.stop();
}
设备信息
获取设备的具体信息。
// 导入upnped库
import 'package:upnped/upnped.dart';
// 主函数
Future<void> main() async {
// 获取UPnP服务器实例
final server = Server.getInstance();
// 监听发现的设备
server.devices.listen((Device event) {
print('发现了一个设备: ${event}');
// 打印设备信息
print('设备类型: ${event.deviceType}');
print('设备UDN: ${event.udn}');
print('设备名称: ${event.friendlyName}');
});
// 开始监听UPnP设备
await server.listen(Options());
// 搜索UPnP设备
await server.search();
// 停止监听
await server.stop();
}
厂商扩展
支持非标准厂商扩展。
// 导入upnped库
import 'package:upnped/upnped.dart';
// 主函数
Future<void> main() async {
// 获取UPnP服务器实例
final server = Server.getInstance();
// 监听发现的设备
server.devices.listen((Device event) {
print('发现了一个设备: ${event}');
// 打印厂商扩展信息
print('厂商扩展: ${event.vendorExtensions}');
});
// 开始监听UPnP设备
await server.listen(Options());
// 搜索UPnP设备
await server.search();
// 停止监听
await server.stop();
}
服务控制
控制UPnP设备的服务。
// 导入upnped库
import 'package:upnped/upnped.dart';
// 主函数
Future<void> main() async {
// 获取UPnP服务器实例
final server = Server.getInstance();
// 监听发现的设备
server.devices.listen((Device event) {
print('发现了一个设备: ${event}');
// 控制设备服务
event.services.forEach((service) async {
print('控制服务: ${service.serviceType}');
// 调用服务操作
await service.invokeAction('SetVolume', {'InstanceID': 0, 'Channel': 'Master', 'DesiredVolume': 50});
});
});
// 开始监听UPnP设备
await server.listen(Options());
// 搜索UPnP设备
await server.search();
// 停止监听
await server.stop();
}
事件监控
监控UPnP设备的状态变化。
// 导入upnped库
import 'package:upnped/upnped.dart';
// 主函数
Future<void> main() async {
// 获取UPnP服务器实例
final server = Server.getInstance();
// 监听发现的设备
server.devices.listen((Device event) {
print('发现了一个设备: ${event}');
// 监控设备事件
event.events.listen((event) {
print('接收到事件: ${event}');
});
});
// 开始监听UPnP设备
await server.listen(Options());
// 搜索UPnP设备
await server.search();
// 停止监听
await server.stop();
}
更多关于Flutter插件upnped的特性与使用方法的实战教程也可以访问 https://www.itying.com/category-92-b0.html