Как запустить предварительный просмотр Ricoh Theta во Флаттере?
Я хочу отобразить предварительный просмотр камеры Ricoh SC в моем приложении. Однако я не могу получить видеопоток на моем устройстве. Я могу делать базовые вещи, такие как установка Api на v2 и фотографирование. Я новичок в трепетании и поэтому не эксперт в работе с потоками и фьючерсами.
void startLivePreview() {
Future<http.Response> response = _getLivePreview();
Stream<http.Response> responseStream = response.asStream();
responseStream.listen((onData) {
print('\n\nStatuscode stream: ${onData.statusCode}\n\n');
print('\n\nReceived some data\n\n');
}, onDone: () {
print("\n\nStream Done\n\n");
}, onError: (error) {
print("\n\nStreaming Error\n\n");
}).onError((handleError) {
throw handleError;
});
}
static const String postExecute = '/osc/commands/execute';
String jsonGetLivePreview = json.encode({'name': 'camera.getLivePreview', 'parameters': {}});
Future<http.Response> _getLivePreview() =>
fetchPost(postExecute, jsonGetLivePreview);
Future<http.Response> fetchPost(
String postCommand, String jsonRequest) async {
var uri = new Uri.http(_ipAddress, postCommand);
final response = await http.post(uri, body: jsonRequest);
if (response.statusCode == 200) {
print('\nStatuscode: ${response.statusCode}\n\n');
print('\nResponse: ${response.body}\n\n');
return response;
} else {
print('Statuscode: ${response.statusCode}');
throw Exception('Failed to load post');
}
}
В большинстве случаев ничего не печатается вообще. Иногда я получал http statuscode 403. Однако я больше не могу его воспроизвести.