我正在制作一个Xamarin应用程序,允许用户使用4种不同的内容类型[文本,图像,声音,视频]创建消息。
在将视频添加到混音中之前,一切正常。
正在发送文件并将其存储在blob数据库中。它适用于我们的大多数设备,例如:
但不知何故,它不适用于我们的三星Galaxy S7(7.0)和三星Galaxy S4(???)。
在第一台设备上,我可以制作/选择视频并将它们发送到服务器,它们可以在所有其他设备(甚至是SGS7和SGS4)上的Android VideoView中播放。 这些视频是使用外部相机应用程序制作的。
当我使用SGS7 / SGS4制作/选择视频时,视频可在预览中播放。 但是在将它们发送到服务器并且您尝试阅读该消息后,视频将无法在任何设备上播放(甚至不是制作它们的设备)。但视频确实存在,因为它的URL可以在浏览器中播放。
我整天都在调试,没有什么看起来很特别。发送文件时我没有收到任何错误。
任何关于这可能出错的原因以及为什么大多数设备工作得很好?
答案 0 :(得分:1)
使用默认的MediaPlayer有一些限制:
ExoPlayer支持MediaPlayer不支持的动态自适应HTTP流传输(DASH),SmoothStreaming和Common Encryption等功能。它的设计易于定制和扩展。
来源:ExoPlayer
使用ExoPlayer我能够播放我之前可以播放的视频。
答案 1 :(得分:1)
ExoPlayer可能是你最好的选择。它也被Xamarin.Forms MediaPlayer插件使用。
关于来自Azure存储的流式传输,this blog post为我提供了一些非常有用的信息,因为如果我们尝试清理视频,我的Android应用会崩溃: