【问题标题】:Android : Proxy settings for MediaPlayer classAndroid:MediaPlayer 类的代理设置
【发布时间】:2011-06-04 05:27:11
【问题描述】:

我正在开发一个安卓应用程序。在这个应用程序中,我必须从 HTTP 服务器播放视频。我正在尝试使用 MediaPlayer 类来播放这个 HTTP 视频流。我正在接收 “无法播放视频”错误。

我的 WI-FI 连接需要代理才能访问互联网。如何指定这些代理设置。

【问题讨论】:

    标签: android proxy settings media-player


    【解决方案1】:

    你可以试试:

    Properties systemSettings=System.getProperties();
    
    systemSettings.put("http.proxyHost", "your.proxy.host.here");
    systemSettings.put("http.proxyPort", "8080"); // use actual proxy port
    

    但是,请记住,“无法播放视频”有许多潜在原因。使用adb logcat、DDMS 或Eclipse 中的DDMS 透视图检查LogCat 并查看MediaPlayer 生成的警告 或错误,以便为您提供更多线索。例如,您的视频可能不是"safe for streaming"

    【讨论】:

    • 我尝试使用 'java.lang.System.setproperty("http.proxyHost", "")' ,我得到了同样的错误...我也尝试使用 'android.provider.Settings。 System' 类来设置 Http Proxy.. 但我得到以下异常:设置 http_proxy 已从 android.provider.Settings.System 移动到 android.provider.Settings.Secure,值未更改....当我使用“android.provider.Settings.Secure”时,我得到 java.lang.SecurityException: Permission denial: 写入安全设置需要 android.permission.WRITE_SECURE_SETTINGS。我已经在我的清单文件中获得了所需的权限....
    • 我认为不能通过非系统应用设置http代理check this link
    • 当我使用其他不需要代理的网络时,我可以播放视频。所以这个错误只与网络有关。
    • 我找到了一个播放流媒体视频的应用程序...npr-android-app...在这个应用程序中,他们使用不同的方法使用代理播放视频..我认为这是一种解决方法.. . 他们在他们的应用程序中实现了一个服务器,它使用 URLConnection 处理请求......并且 URLConnection 具有代理支持......他们在 MediaPlayer 中使用这个本地服务器地址......就像localhost/videoid.. 这是唯一可能的方法...
    • @Ranjith:普通的 SDK 应用程序无法修改安全设置。我在上面列出的代码适用于HttpClient,我认为MediaPlayer 可能会兑现它——显然,事实并非如此。 NPR 的本地代理解决方案显然适用于他们,我没有任何其他建议要对您提出。
    猜你喜欢
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 2020-01-07
    • 2017-06-09
    • 2016-10-18
    相关资源
    最近更新 更多