Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Desarrollo en Delphi para Android (https://www.clubdelphi.com/foros/forumdisplay.php?f=57)
-   -   Aplicación con problemas de acceso a la red. (https://www.clubdelphi.com/foros/showthread.php?t=96321)

voci 01-08-2023 13:41:02

Aplicación con problemas de acceso a la red.
 
De nuevo con un problema en android 13, a ver si alguien me puede dar algo de luz.

Estoy intentando probar un componente para visualizar la imagen de una cámara y no soy capaz de hacerlo funcionar correctamente.

Me explico, el componente es este:

https://winsoft.sk/vstream.htm

Al descargar el componente trae una demo para compilar, pues bien, una vez compilado e instalado arranca perfectamente, pero al poner el enlace de una cámara pública no reproduce la imagen, por supuesto esto ocurre en mi móvil con MIUI 14 y android 13, en otro teléfono con android 8 funciona correctamente.

Para liar aún más el asunto, en la misma página se puede descargar la versión demo ya compilada, pues esa versión funciona correctamente en android 13.

No se cual puede ser el problema pero me tiene muy descentrado, a ver si alguien me puede orientar en la dirección correcta.

Saludos.

Casimiro Notevi 01-08-2023 15:09:20

Echa un vistazo a los permisos del programa, por si acaso.

voci 01-08-2023 19:51:19

Cita:

Empezado por Casimiro Notevi (Mensaje 552219)
Echa un vistazo a los permisos del programa, por si acaso.

Gracias Casimiro, le he dado permiso a todo, el problema debe ser otro.

Saludos.

Casimiro Notevi 01-08-2023 21:37:17

Pues si no das más pistas :confused:

voci 02-08-2023 17:03:00

Cita:

Empezado por Casimiro Notevi (Mensaje 552223)
Pues si no das más pistas :confused:

Pues no se que más decir, tengo dos *.apk, uno compilado por la compañía creadora del componente que funciona en todos los android, otro compilado por mi, con el mismo código, ó eso creo ya que pesa exactamente lo mismo, funciona en versiones de android < 11.

El problema es que aunque el proyecto lo compilo yo, el componente en si ya viene compilado, pero entiendo al ser el peso de ambos apks exactamente el mismo que no puede estar ahí el problema.

El resultado en mi móvil con versión 13 de android es el que se muestra a continuación, a la izquierda el compilado por mi y a la derecha el compilado por ellos.



En cuanto a los permisos, la aplicación compilada por ellos tiene todos los permisos denegados, la verdad es que para lo que hace la aplicación no los necesita.



Las dos versiones se pueden descargar desde el enlace que puse en el mensaje inicial.

Si se me ha pasado algo por alto dímelo y lo miro.

Saludos.

Casimiro Notevi 02-08-2023 18:23:08

¿Ambas usan el mismo navegador?

voci 02-08-2023 19:33:21

Cita:

Empezado por Casimiro Notevi (Mensaje 552239)
¿Ambas usan el mismo navegador?

No usa el navegador para reproducir la cámara, aunque como digo el componente en si ya está compilado, el código de la unidad a compilar es este:

Código:

unit Main;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Layouts,
  FMX.ExtCtrls, FMX.Surfaces, FMX.StdCtrls, FMX.Edit, FMX.Controls.Presentation,
  VideoStream;

type
  TFormMain = class(TForm)
    ImageViewer: TImageViewer;
    Panel: TPanel;
    EditUrl: TEdit;
    ButtonStartStop: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure ButtonStartStopClick(Sender: TObject);
  private
    { Private declarations }
    VideoClient: TVideoClient;
    BitmapSurface: TBitmapSurface;
    WasRealignContent: Boolean;
    procedure ImageAvailable(JpegImage: TByteDynArray);
  public
    { Public declarations }
  end;

var
  FormMain: TFormMain;

implementation

{$R *.fmx}

procedure TFormMain.FormCreate(Sender: TObject);
begin
  BitmapSurface := TBitmapSurface.Create;

  VideoClient := TVideoClient.Create;
  VideoClient.OnImageAvailable := ImageAvailable;
end;

procedure TFormMain.FormDestroy(Sender: TObject);
begin
  VideoClient.Free;
  BitmapSurface.Free;
end;

procedure TFormMain.ButtonStartStopClick(Sender: TObject);
begin
  if not VideoClient.Active then
  begin
    VideoClient.Url := EditUrl.Text;
    VideoClient.Active := True;
    ButtonStartStop.Text := 'Stop';
    EditUrl.Enabled := False;
  end
  else
  begin
    VideoClient.Active := False;
    ButtonStartStop.Text := 'Start';
    EditUrl.Enabled := True;
  end
end;

procedure TFormMain.ImageAvailable(JpegImage: TByteDynArray);
var Stream: TBytesStream;
begin
  Stream := TBytesStream.Create(TBytes(JpegImage));
  try
    TBitmapCodecManager.LoadFromStream(Stream, BitmapSurface);
  finally
    Stream.Free;
  end;

  ImageViewer.Bitmap.Assign(BitmapSurface);

  // workaround for Android
  if not WasRealignContent then
  begin
    ImageViewer.RealignContent;
    WasRealignContent := True;
  end;
end;

end.

Saludos.

jhonalone 16-09-2023 22:04:57

Hola, voci.
Hace bastante que no hago cosas con Delphi.
Ahora con las nuevas exigencias de Google Play, he vuelto a retomar para actualizar algunas app's que tengo subidas y voy a necesitar de vuestra ayuda. Por éso estoy aquí.
He comprobado que en mi Android 13 fallan app's que funcionan en mi Android 9.
También he observado que cuando rebajas el SDK objetivo también funcionan en Android 13.
Si tu app no necesitas subirla a Google Play, puedes probar a rebajar el SDK en el AndoridManifest.
Es una idea.
Saludos a todos.


La franja horaria es GMT +2. Ahora son las 20:00:37.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi