1

我在 wowza 流媒体服务器上运行流媒体。但我无法找到流媒体的确切持续时间。

我正在运行音乐网站,我们在用户本机播放器上播放流媒体。对于我们的跟踪,我们希望跟踪用户收听音频的确切持续时间。

4

3 回答 3

1

正如其他人在评论中所说,无法确定确切的流式传输时间。

不同的客户端在处理流方面有不同的行为。考虑浏览器客户端可以预先缓冲数据的情况。如果用户进入一个页面并且浏览器开始下载音频数据,服务器会认为客户端正在监听流,而实际上数据只是在内存中。当用户确实开始播放音频时,比如 1 分钟后,服务器现在认为他们已经听了一分钟了。当用户进入新页面时,与服务器的连接断开,在断开连接的同时停止音频。

在其他情况下,媒体播放器实际上可以在中途暂停,在断开连接之前缓冲数据几秒钟。

您可以做的最好的事情是使用客户端分析,但这并非在所有情况下都是可能的,因为您并不总是可以控制客户端,而且并非所有客户端都有能力。

于 2015-01-19T22:47:54.800 回答
0

你不能在服务器(wowza)端这样做。好吧,您可以,但由于缓冲以及 HTTP 流协议的一般工作方式,数据将不准确。

但是,您仍然可以在客户端使用某种 javascript 来聚合这些数据。

您必须监听播放器事件,例如播放、暂停、停止,甚至搜索。大多数网络播放器都有回调来跟踪这些事件。然后收集数据并将它们发送到您的数据库进行存储。

于 2018-12-11T11:55:35.653 回答
-1

要获得流的持续时间,您必须开发一个自定义模块。有一个名为 onMediaStreamDestroy 的事件,使用 IMediaStream 对象可以获得持续时间。公共类 MyMediaStreamListener 实现 IMediaStreamNotify { @Override public void onMediaStreamDestroy(IMediaStream stream) { stream.length(); // 这用于获取视频的长度(以秒为单位) } }

于 2014-09-25T11:26:58.617 回答