MJPEG с WebView в JetPack ComposeAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 MJPEG с WebView в JetPack Compose

Сообщение Anonymous »

Я пытаюсь отобразить прямую трансляцию из моей веб -камеры Windows в приложении Android. Я использую сервер Flask для трансляции канала веб -камеры в качестве видео MJPEG, и я хочу просмотреть этот поток внутри приложения с помощью WebView. Однако, когда я пытаюсь, я вижу только пустой экран (иногда белый, а иногда и черный). Как решить эту проблему? < /P>
Flask Server < /p>

Код: Выделить всё

import cv2
from flask import Flask, Response, render_template_string

app = Flask(__name__)
cap = cv2.VideoCapture(0)  # 0 = default webcam

def gen_frames():
while True:
success, frame = cap.read()
if not success:
break
else:
ret, buffer = cv2.imencode('.jpg', frame)
frame_bytes = buffer.tobytes()
yield (b'--frame\r\n'
b'Content-Type: image/jpeg\r\n\r\n' + frame_bytes + b'\r\n')

@app.route('/')
def index():
return render_template_string("""




html, body {
display: flex;
justify-content: center;
align-items: center;
margin: auto auto;
padding: 0;
height: 100vh;
width: 100vw;
background-color: black;
overflow: hidden;
}
#video-container {
display: flex;
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
img {
width: 100%;
height: auto;
}




[img]/video_feed[/img]



""")

@app.route('/video_feed')
def video_feed():
return Response(gen_frames(),
mimetype='multipart/x-mixed-replace; boundary=frame')

if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
< /code>
WebView Composable < /p>
@Composable
fun MjpegWebView(
modifier: Modifier = Modifier, url: String
) {

AndroidView(
factory = { context ->
WebView(context).apply {
webViewClient = WebViewClient()
settings.javaScriptEnabled = false
loadUrl(url)
}
},
modifier = modifier
)
}
работает, как и ожидалось, в браузерах, но не показывает пустой экран на WebView

Подробнее здесь: https://stackoverflow.com/questions/796 ... ck-compose
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»