【发布时间】:2018-03-25 14:28:01
【问题描述】:
我正在开发一个 Xamarin 应用程序,该应用程序允许用户创建具有 4 种不同内容类型 [文本、图像、声音、视频] 的消息。
在添加视频之前一切正常。
文件正在发送并存储在 blob 数据库中。它适用于我们的大多数设备,例如:
- LG Nexus 5 (???)
- LG Nexus 5X (8.0)
- 三星 Galaxy S3 Neo (4.4.2)
但不知何故,它不适用于我们的三星 Galaxy S7 (7.0) 和三星 Galaxy S4 (???)。
在第一批设备上,我可以制作/选择视频并将它们发送到服务器,它们将可以在所有其他设备(甚至 SGS7 和 SGS4)上的 Android VideoView 中播放。 视频是使用外部相机应用制作的。
当我使用 SGS7/SGS4 制作/选择视频时,视频可以在预览中播放。 但是在它们被发送到服务器并且您尝试阅读消息之后,视频将不会在任何设备上播放(甚至不是制作它们的设备)。但是视频确实存在,因为它的 URL 可以在浏览器中播放。
我一整天都在调试,看起来没什么特别的。发送文件时我没有收到任何错误。
您知道这可能出问题的地方以及为什么大多数设备都可以正常工作吗?
【问题讨论】:
-
这里有很多东西在起作用。可以播放本地存储的视频吗?您如何将视频发送给客户?
-
如果我从网上下载视频并通过usb放在设备上,我可以播放视频。所以格式应该很好,文件没有损坏。感觉 Android VideoView 对流文件有一些限制。
-
嗯,还有更多。 mediaType 必须出现在标头中,并且一些客户端希望内容以一种特殊的方式流式传输,例如在视频流完全下载之前向前擦洗。那么你是如何流式传输的呢?
-
@bryanbcook 我很抱歉,我对整个视频播放流媒体真的很陌生。我只知道媒体文件存储在 azure blobstorage 中,Android VideoView 获取该项目的 url。对于 iOS 和 Web 以及 Android 上的较小视频来说,它似乎还不错。但是当视频变大时,Android VideoView 会抛出 Can't play Video 消息。
-
好的,这很有帮助。我之前已经成功地从 azure blob 存储中流式传输视频。您是否能够在 iOS 上下载的内容之外继续前进?
标签: android xamarin xamarin.android video-streaming samsung-galaxy