owncloud / android

:phone: The ownCloud Android App
GNU General Public License v2.0
3.77k stars 3.05k forks source link

[BUG] Can't stream video from space #4328

Closed LiYuHan525 closed 2 months ago

LiYuHan525 commented 4 months ago

Actual behaviour

-can play video from person file via android -cant play video from spaces file via android -can play the same video from space via web

Expected behaviour

-can play video from spaces

Steps to reproduce

  1. go to any space
  2. play video
  3. alert"This video file is no longer available in the server"

Can this problem be reproduced with the official owncloud server? (url: https://demo.owncloud.org, user: test, password: test)

Environment data

Android version: 14 Device model: Xiaomi 13 pro Stock or customized system:

ownCloud app version: 4.2.0 ownCloud server version: ocis 4.0.5

Logs

Web server error log

when req from android, the path url is based on 'files' not 'spaces' like from web

{"level":"info","service":"proxy","proto":"HTTP/1.1","request-id":"truenas/i2B5NthcwU-000874","traceid":"e111abbc5ebab9e67f2235bc399f7e0d","remote-addr":"192.168.50.250:59306","method":"GET","status":404,"path":"/remote.php/dav/files/admin/file.mp4","duration":19.66575,"bytes":0,"time":"2024-02-22T02:44:58.979287577Z","line":"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware/accesslog.go:34","message":"access-log"}

{"level":"info","service":"proxy","proto":"HTTP/1.1","request-id":"cf76d3b2-eaf4-4e27-bd9e-c96406ae0d35","traceid":"a27f968611ee49dbe954c7044940659a","remote-addr":"192.168.50.250:57546","method":"PROPFIND","status":207,"path":"/remote.php/dav/spaces/cd95daef-266c-4fe5-9235-ae114f3c81c0$35a7805c-51b3-49ea-9e5f-073cd2fdaabf/file.mp4","duration":25.171966,"bytes":575,"time":"2024-02-22T02:41:22.832133814Z","line":"github.com/owncloud/ocis/v2/services/proxy/pkg/middleware/accesslog.go:34","message":"access-log"}

ownCloud log (data/owncloud.log)

Insert your ownCloud log here
jesmrec commented 4 months ago

Thanks a lot for reporting. I can reproduce the problem, team will fix.

jesmrec commented 2 months ago

stacktrace (edit):

Playback error
                   androidx.media3.exoplayer.ExoPlaybackException: Source error
                       at androidx.media3.exoplayer.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:684)
                       at androidx.media3.exoplayer.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:656)
                       at android.os.Handler.dispatchMessage(Handler.java:102)
                       at android.os.Looper.loop(Looper.java:223)
                       at android.os.HandlerThread.run(HandlerThread.java:67)
                   Caused by: androidx.media3.datasource.HttpDataSource$InvalidResponseCodeException: Response code: 404
                       at androidx.media3.datasource.DefaultHttpDataSource.open(DefaultHttpDataSource.java:435)
                       at androidx.media3.datasource.DefaultDataSource.open(DefaultDataSource.java:272)
                       at androidx.media3.datasource.StatsDataSource.open(StatsDataSource.java:86)
                       at androidx.media3.exoplayer.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1006)
                       at androidx.media3.exoplayer.upstream.Loader$LoadTask.run(Loader.java:414)
                       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
                       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
                       at java.lang.Thread.run(Thread.java:923)
JuancaG05 commented 2 months ago

It seems this only happens with video streaming, and because the URL we send to Exoplayer is malformed (lacks of space reference). Working on it 🚀