Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[bug] Android use convertFileSrc() with customized protocol to load local video source not work and trigger so many same range request header #12019

Open
ximing-xu opened this issue Dec 20, 2024 · 0 comments
Labels
status: needs triage This issue needs to triage, applied to new issues type: bug

Comments

@ximing-xu
Copy link

Describe the bug

on android platform,when use convertFileSrc method with customized protocol to load local file to gen a video src, when load video, the request header will like range: bytes=0-, when load large video file,this will trigger OOM and crashed, if response with not all file, it will trigger so many same range request,such as range: bytes=123-, and the video could not play. but it work well in http src.

Reproduction

// customized response
http::Response::builder()
.status(code)
.header("Content-Type", get_mime_type(&path))
.header("Connection", "Keep-Alive")
.header("Keep-Alive", "timeout=58")
.header("Accept-Ranges", "bytes")
.header("Last-Modified", last_modified_str)
.header("Content-Length", (byte_range.2).to_string())
.header(
"Content-Range",
format!("bytes {}-{}/{}", byte_range.0, byte_range.1, file_size),
)
.body(data)
.unwrap();

Expected behavior

expect the customize protocol can behave as same as normal http src, because the same custmized protocol work well on ios, is there the android webview video load request as same as ios?

Full tauri info output

[✔] Environment
    - OS: Windows 10.0.17763 x86_64 (X64)
    ✔ WebView2: 131.0.2903.99
    ✔ MSVC: Visual Studio Community 2022
    ✔ rustc: 1.79.0 (129f3b996 2024-06-10)
    ✔ cargo: 1.79.0 (ffa9cf99a 2024-06-03)
    ✔ rustup: 1.27.1 (54dd3d00f 2024-04-24)
    ✔ Rust toolchain: stable-x86_64-pc-windows-msvc (default)
    - node: 20.12.2
    - npm: 10.5.0

[-] Packages
    - tauri �: 2.1.1
    - tauri-build �: 2.0.3
    - wry �: 0.47.2
    - tao �: 0.30.8
    - tauri-cli �: 1.6.0
    - @tauri-apps/api : 2.1.1
    - @tauri-apps/cli : 2.1.0

[-] Plugins
    - tauri-plugin-fs �: 2.0.3
    - @tauri-apps/plugin-fs : 2.0.3 (outdated, latest: 2.2.0)
    - tauri-plugin-localhost �: 2.0.1
    - @tauri-apps/plugin-localhost : not installed!
    - tauri-plugin-persisted-scope �: 2.0.3
    - @tauri-apps/plugin-persisted-scope : not installed!
    - tauri-plugin-sql �: 2.0.2
    - @tauri-apps/plugin-sql : not installed!
    - tauri-plugin-http �: 2.0.3
    - @tauri-apps/plugin-http : not installed!
    - tauri-plugin-upload �: 2.1.0
    - @tauri-apps/plugin-upload : 2.2.1
    - tauri-plugin-os �: 2.0.1
    - @tauri-apps/plugin-os : 2.0.0 (outdated, latest: 2.2.0)
    - tauri-plugin-store �: 2.1.0
    - @tauri-apps/plugin-store : 2.1.0 (outdated, latest: 2.2.0)
    - tauri-plugin-barcode-scanner �: 2.0.1
    - @tauri-apps/plugin-barcode-scanner : not installed!
    - tauri-plugin-shell �: 2.0.2
    - @tauri-apps/plugin-shell : 2.0.1 (outdated, latest: 2.2.0)
    - tauri-plugin-log �: 2.0.2
    - @tauri-apps/plugin-log : 2.0.1 (outdated, latest: 2.2.0)

Stack trace

12-20 17:42:59.596 21235 21290 I RustStdoutStderr: headerName:"origin",headerValue:Ok("http://tauri.localhost")
12-20 17:42:59.596 21235 21290 I RustStdoutStderr: headerName:"referer",headerValue:Ok("http://tauri.localhost/")
12-20 17:42:59.597 21235 21290 I RustStdoutStderr: headerName:"accept-encoding",headerValue:Ok("identity;q=1, *;q=0")
12-20 17:42:59.597 21235 21290 I RustStdoutStderr: headerName:"range",headerValue:Ok("bytes=753664-")
12-20 17:42:59.597 21235 21290 I RustStdoutStderr: headerName:"accept",headerValue:Ok("*/*")
12-20 17:43:01.720 21235 21290 I RustStdoutStderr: headerName:"origin",headerValue:Ok("http://tauri.localhost")
12-20 17:43:01.720 21235 21290 I RustStdoutStderr: headerName:"referer",headerValue:Ok("http://tauri.localhost/")
12-20 17:43:01.721 21235 21290 I RustStdoutStderr: headerName:"accept-encoding",headerValue:Ok("identity;q=1, *;q=0")
12-20 17:43:01.721 21235 21290 I RustStdoutStderr: headerName:"range",headerValue:Ok("bytes=753664-")
12-20 17:43:01.721 21235 21290 I RustStdoutStderr: headerName:"accept",headerValue:Ok("*/*")

Additional context

No response

@ximing-xu ximing-xu added status: needs triage This issue needs to triage, applied to new issues type: bug labels Dec 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: needs triage This issue needs to triage, applied to new issues type: bug
Projects
None yet
Development

No branches or pull requests

1 participant