2

我正在尝试制作一些可以播放来自 wowza 的流的应用程序。
那部分没问题。但接下来我需要在应用程序中有一些选项,它将与 wowza 服务器通信。例如,如何调用 wowza 服务器的某些方法,如何调用 onConnect 方法......如何从应用程序中的 wowza 连接并保持连接,直到我调用 onDisconnect 方法?
如果有人有一些信息,我将非常感激......在此先感谢......

VideoView.setVideoPath("some path") 

玩的诀窍...

4

1 回答 1

5

您使用 HTTPProvider (http://www.wowza.com/forums/content.php?30-httpproviders) 在 Wowza 模块中调用方法。这会在您的 Wowza 模块中为您提供一个 URL,您的应用程序将能够通过 HTTP 调用该 URL。

因此,例如,您的 Wowza 模块在默认情况下运行:

http://localhost:1935.

您可以将 HTTPProvider 添加到您的 VHost.xml,例如:

<HTTPProvider>
    <BaseClass>com.mycompany.wms.module.SomeModule</BaseClass>
    <RequestFilters>logout*</RequestFilters>
    <AuthenticationMethod>none</AuthenticationMethod>
</HTTPProvider>

这将让您调用一个 url,例如:

http://localhost:1935/logout?id=123456789

在您的模块的 Java 代码中,您需要实现 HTTProvider2Base,从中创建 onHTTPRequest 方法。查询字符串中的变量(在本例中为:?id=123456789)可以在方法中使用。您还可以从此处调用模块中的方法。

将使用此调用的示例 Java 类如下:

package com.mycompany.wms.module;

import com.wowza.wms.http.HTTProvider2Base;
import com.wowza.wms.http.IHTTPRequest;
import com.wowza.wms.http.IHTTPResponse;
import com.wowza.wms.logging.WMSLogger;
import com.wowza.wms.logging.WMSLoggerFactory;
import com.wowza.wms.vhost.IVHost;

public class SomeModule extends HTTProvider2Base {

public void onHTTPRequest(IVHost vhost, IHTTPRequest req, IHTTPResponse resp) {
    //Get the user
    String userId = req.getParameter("id");
    getLogger().info("Logging out user: " + userId );       

    logoutUser(userId);
}

private void logoutUser(String userId){
    //Do stuff here...
}

private WMSLogger getLogger(){
    return WMSLoggerFactory.getLogger(SomeModule.class);
}
}

一些陷阱:

  • onHTTPRequest 中的范围似乎在您的实例之外,因此请小心访问模块实例中的属性。
  • 我必须注释掉带有 HTTPServerVersion 的 HTTPProvider 节点才能让我的节点正常工作。它似乎覆盖了我的 Wowza 版本中的所有其他 HTTPProvider。
  • 我也遇到了从 IDE 运行的 Wowza 没有通过 Visual Studio 接听对 url 的调用的问题。一旦我将更改放入服务版本,调用就可以正常工作。

我构建的应用程序主要基于本文中的对话:http ://www.wowza.com/forums/content.php?182-HTTPProvider-that-returns-detail-server-info

于 2012-05-30T17:38:06.800 回答