【问题标题】:Call a wowza server from android app?从 android 应用程序调用 wowza 服务器?
【发布时间】:2012-05-31 20:35:24
【问题描述】:

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

VideoView.setVideoPath("some path") 

玩的诀窍...

【问题讨论】:

  • 你是如何从 wowza 播放流的。我需要帮助...

标签: java android video-streaming wowza


【解决方案1】:

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

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

http://localhost:1935.

您可以在您的 VHost.xml 中添加一个 HTTPProvider,例如:

<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

【讨论】:

  • 谢谢伙计……这很有帮助。您是否曾经尝试过甚至成功地从 Android 设备连接到 wowza 服务器,就像我们可以在 Flash 中做的那样?我问是因为我不时需要在客户端(Android 设备)发送信息或调用某些方法?!
  • 嗨乔万。我还没有从 Android 设备上完成它。但我在想如果你有一个可以用来调用 wowza 方法的 url,那么你应该能够从你的 Android 应用程序中点击那个 url 吗?希望对您有所帮助。
  • 嗨 Nik,这一切都非常有帮助,我明白了,但我需要建立一个连接,就像我们在 flash 到 flash 应用程序中一样,并且在某些情况下,没有定义时间在 android 上调用某些方法来自服务器的客户端。例如,在聊天应用程序中,我需要从服务器向某个 android 用户发送一条消息?我怎样才能做到这一点?你有什么想法吗?!谢谢尼克的时间! :)
  • 嗨 Jovan,我明白你的意思了。在 Flash 中,我们会挂接到一个共享对象并使用它来执行回调,但我不确定您是否可以从 Android 执行此操作。但是一种解决方法是在 wowza 上设置一个 url,在调用时检查该用户的事件,然后定期轮询它(例如每 30 秒)。如果您的 android 客户端需要发生某些事情,那么您可以从 wowza url 返回数据。希望对您有所帮助,并希望您找到更好的解决方案!
  • 好的。谢谢尼克...我会尝试这个,但因为我没有找到任何更好的解决方案,所以这个工作区现在必须......谢谢你的时间,我会标记这个以获得一个好的答案。再见... :)
猜你喜欢
  • 2016-12-03
  • 2018-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-15
  • 1970-01-01
  • 2016-12-20
  • 2018-10-20
相关资源
最近更新 更多