Как запустить предварительный просмотр 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. Однако я больше не могу его воспроизвести.

0 ответов

Другие вопросы по тегам