我正在启动node.js服务器,并且我试图在客户端播放视频,在这种情况下是浏览器,每次我尝试播放视频时播放的视频但搜索栏不会缓冲但视频会播放,如果你试图寻找它只会把你送回原来的位置。我的赌注猜测是writeHead的写入速度不够快,所以它是单向的,它不会在视频播放之前缓冲。
video.mp4的服务器代码段
class ChannelEdit : DialogFragment
{
public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
base.OnCreateView(inflater, container, savedInstanceState);
var view = inflater.Inflate(Resource.Layout.ChannelEdit, container, false);
DisplayMetrics dm = new DisplayMetrics();
this.Dialog.Window.WindowManager.DefaultDisplay.GetMetrics(dm);
int width = dm.WidthPixels;
int height = dm.HeightPixels;
this.Dialog.Window.SetLayout((int)width / 2, (int)height / 2);
return view;
}
}
答案 0 :(得分:0)
您需要support byte range requests。请参阅SoundManager2的Technical Notes on the subject。
Byte Serving在客户端和服务器之间自动协商,与传统下载相比具有许多优势。最值得注意的是,Byte Serving更接近“流媒体”技术,并且一旦持续时间已知,客户端就可以在文件中的任意位置搜索,缓冲和恢复播放。
示例请求:
GET 1a8fdf5d0433ed581bbcee74836b3305.mp4 HTTP/1.1
Range: bytes=5210604-5275910
预期回应:
HTTP/1.1 206 Partial Content
Accept-Ranges: bytes
Content-length: 65307
Content-Range: bytes 5210604-5275910/5275911
Content-Type: video/mp4
206 Partial Content
状态。Content-Range
回复标题。416 Requested Range Not Satisfiable
状态响应。