无法使用 Vitamio 进行直播

2023-12-11

我正在尝试使用Vitamio要运行 RTSP 视频流,我在更新 Vitamio-sample 后使用它来运行流VideoViewDemo活动:

public class VideoViewDemo extends Activity {

    /**
     * TODO: Set the path variable to a streaming video URL or a local media file
     * path.
     */
    private String path = "rtsp://user:password@<stream-ip>:554";
    private VideoView mVideoView;
    private EditText mEditText;

    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        if (!LibsChecker.checkVitamioLibs(this))
            return;
        setContentView(R.layout.videoview);
        mEditText = (EditText) findViewById(R.id.url);
        mVideoView = (VideoView) findViewById(R.id.surface_view);
        if (path == "") {
            // Tell the user to provide a media file URL/path.
            Toast.makeText(VideoViewDemo.this, "Please edit VideoViewDemo Activity, and set path" + " variable to your media file URL/path", Toast.LENGTH_LONG).show();
            return;
        } else {
            /*
             * Alternatively,for streaming media you can use
             * mVideoView.setVideoURI(Uri.parse(URLstring));
             */
            mVideoView.setVideoPath(path);
            mVideoView.setMediaController(new MediaController(this));
            mVideoView.requestFocus();
            //mVideoView.setVideoURI(Uri.parse(path));

            mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer mediaPlayer) {
                    // optional need Vitamio 4.0
                    mediaPlayer.setPlaybackSpeed(1.0f);
                }
            });
        }

    }

    public void startPlay(View view) {
        String url = mEditText.getText().toString();
        path = url;
        if (!TextUtils.isEmpty(url)) {
            mVideoView.setVideoPath(url);
        }
    }

    public void openVideo(View View) {
      mVideoView.setVideoPath(path);
    }

}

但运行它后,它只运行了很短的时间(这只给了我第一个视频帧[固定照片]),然后应用程序崩溃并给我应用程序没有响应消息而不在日志中打印任何错误消息:

08-03 15:45:37.224: I/Vitamio[4.2.1][Player](27585): META AUDIO: 1. und, META SUBTITLE: 
08-03 15:45:37.234: I/Vitamio[4.2.1][Player](27585): WOW: BRILLIANT C COUNT 4
08-03 15:45:37.234: I/Vitamio[4.2.1][Player](27585): OPEN STREAM AUDIO BEGIN
08-03 15:45:37.234: I/Vitamio[4.2.1][Player](27585): Copyright (c) YIXIA (http://yixia.com).
08-03 15:45:37.234: I/Vitamio[4.2.1][Player](27585): THIS SOFTWARE (Vitamio) IS WORK OF YIXIA (http://yixia.com)
08-03 15:45:37.234: I/Vitamio[4.2.1][Player](27585): Application package name: io.vov.vitamio.demo
08-03 15:45:37.234: I/Vitamio[4.2.1][Player](27585): 2, 48000, 0
08-03 15:45:37.234: V/AudioPolicyManagerBase(273): getOutput() device 2, stream 3, samplingRate 0, format 0, channelMask 3, flags 0
08-03 15:45:37.234: V/AudioPolicyManagerBase(273): getOutputsForDevice device 0002 -> 0002
08-03 15:45:37.234: V/AudioPolicyManagerBase(273): getOutput() returns output 2
08-03 15:45:37.234: V/AudioPolicyManagerBase(273): getOutput() device 2, stream 3, samplingRate 0, format 0, channelMask 3, flags 0

08-03 15:45:37.244: I/Vitamio[4.2.1][Player](27585): OPEN STREAM AUDIO END
08-03 15:45:37.244: I/Vitamio[4.2.1][Player](27585): Copyright (c) YIXIA (http://yixia.com).
08-03 15:45:37.244: I/Vitamio[4.2.1][Player](27585): THIS SOFTWARE (Vitamio) IS WORK OF YIXIA (http://yixia.com)
08-03 15:45:37.244: I/Vitamio[4.2.1][Player](27585): Application package name: io.vov.vitamio.demo
08-03 15:45:37.244: I/Vitamio[4.2.1][Player](27585): WOW: BRILLIANT C COUNT 4
08-03 15:45:37.244: I/Vitamio[4.2.1][Player](27585): OPEN STREAM VIDEO BEGIN
08-03 15:45:37.244: I/Vitamio[4.2.1][Player](27585): OPEN STREAM VIDEO END
08-03 15:45:37.244: D/Vitamio[Player](27585): onVideoSizeChanged: (704x576)
08-03 15:45:37.244: V/audio_hw_primary(273): start_output_stream: enter: usecase(0: deep-buffer-playback) devices(0x2)
08-03 15:45:37.244: V/audio_hw_primary(273): select_devices: ENTER
08-03 15:45:37.244: V/audio_hw_primary(273): select_devices: usecase(normal)
08-03 15:45:37.244: V/audio_hw_primary(273): select_devices: usecase(PCM_PLAYBACK)
08-03 15:45:37.244: V/msm8974_platform(273): platform_get_output_snd_device: enter: output devices(0x2)
08-03 15:45:37.244: V/msm8974_platform(273): get_OUTPUT_snd_device: for Normal Playback
08-03 15:45:37.244: V/msm8974_platform(273): platform_get_output_snd_device: exit: snd_device(speaker)
08-03 15:45:37.244: D/audio_hw_primary(273): select_devices: out_snd_device(2: speaker)
08-03 15:45:37.244: D/audio_hw_primary(273): select_devices: in_snd_device(0: dummy)
08-03 15:45:37.244: V/audio_hw_primary(273): enable_snd_device: snd_device(2: speaker)
08-03 15:45:37.244: D/ACDB-LOADER(273): ACDB -> send_audio_cal, acdb_id = 15, path =  0
08-03 15:45:37.244: D/ACDB-LOADER(273): ACDB -> send_adm_topology
08-03 15:45:37.244: D/ACDB-LOADER(273): ACDB -> ACDB_CMD_GET_AUDPROC_COMMON_TOPOLOGY_ID
08-03 15:45:37.244: I/Vitamio[4.2.1][Player](27585): THREAD PREPARE DETTACHED, ret = 0
08-03 15:45:37.244: I/Vitamio[4.2.1][Player](27585): THREAD PREPARE END

08-03 15:45:37.254: I/Vitamio[4.2.1][Player](27585): CC: SwsScale c
08-03 15:45:37.254: V/audio_hw_primary(273): start_output_stream: Opening PCM device card_id(0) device_id(0)
08-03 15:45:37.254: D/Vitamio[Player](27585): VIDEO: 704x576x1.222222, Surface: 704x576, LP: 1080x883, Window: 1080x1920x0.562500
08-03 15:45:37.264: E/Vitamio[4.2.1][Player](27585): [h264 @ 0x783fac40] Missing reference picture, default is 0
08-03 15:45:37.264: E/Vitamio[4.2.1][Player](27585): [h264 @ 0x783fac40] decode_slice_header error


08-03 15:45:37.304: I/Vitamio[Player](27585): Info (701, 0)
08-03 15:45:37.304: D/Vitamio[Player](27585): onInfo: (701, 0)
08-03 15:45:37.354: W/dalvikvm(27585): Invalid indirect reference 0x4309aa58 in decodeIndirectRef
08-03 15:45:37.354: I/dalvikvm(27585): "Thread-26042" prio=5 tid=19 RUNNABLE
08-03 15:45:37.354: I/dalvikvm(27585):   | group="main" sCount=0 dsCount=0 obj=0x4306fca0 self=0x7b3ab4a8
08-03 15:45:37.354: I/dalvikvm(27585):   | sysTid=28521 nice=0 sched=0/0 cgrp=apps handle=2016853936
08-03 15:45:37.354: I/dalvikvm(27585):   | state=R schedstat=( 32461510 66037500 298 ) utm=2 stm=1 core=3
08-03 15:45:37.354: I/dalvikvm(27585):   at dalvik.system.NativeStart.run(Native Method)
08-03 15:45:37.354: E/dalvikvm(27585): VM aborting
08-03 15:45:37.354: A/libc(27585): Fatal signal 6 (SIGABRT) at 0x00006bc1 (code=-6), thread 28521 (ov.vitamio.demo)

后来在日志中我收到以下消息:

08-03 15:45:37.744: W/ActivityManager(852):   Force finishing activity io.vov.vitamio.demo/.VideoViewDemo
08-03 15:45:37.754: W/ContextImpl(852): Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:1469 com.android.server.am.ActivityStack.startPausingLocked:1002 com.android.server.am.ActivityStack.finishActivityLocked:3147 com.android.server.am.ActivityStack.finishTopRunningActivityLocked:2994 com.android.server.am.ActivityStackSupervisor.finishTopRunningActivityLocked:3093 
08-03 15:45:37.764: W/ApplicationPackageManager(852): getCSCPackageItemText()

扫描了很多之后接近类似的问题,我想这可能是因为它要求有ACCESS_NETWORK_STATE许可,虽然日志没有告诉我这一点,但它告诉我它不是执行此过程的合格用户这意味着用户必须获得有资格的权限,因此,我添加了此权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

所以,要运行授权的 RTSP 直播使用Vitamio,您需要注册以下所有权限:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 Vitamio 进行直播 的相关文章

  • 如何为ScrollView放置固定图像背景?

    我应该想要滚动视图滚动 而不是背景中的图像 将图像添加到滚动视图框架之前的视图层次结构的较高位置
  • 在 Android Studio 中,为什么我必须在模拟器中单击“运行应用程序”两次才能启动应用程序?

    在 Android Studio 中 当我按播放按钮在 Android 模拟器上安装并运行应用程序时 大约 5 10 秒后 我在屏幕底部收到一条消息 显示 安装成功 但应用程序实际上并未运行在模拟器上 我必须再次按下播放按钮 这是非常令人沮
  • CardView 圆角获得意想不到的白色

    When using rounded corner in CardView shows a white border in rounded area which is mostly visible in dark environment F
  • 谷歌坐标认证

    当我尝试连接到 Google 坐标时 总是出现异常GoogleAuthException 我拥有 Google 地图协调中心许可证 我确实使用我的包应用程序名称和 SHA1 在 google 控制台中创建了我的客户端 ID 我将权限添加到清
  • 是否可以将数组或对象添加到 Android 上的 SharedPreferences

    我有一个ArrayList具有名称和图标指针的对象 我想将其保存在SharedPreferences 我能怎么做 注意 我不想使用数据库 无论 API 级别如何 请检查SharedPreferences 中的字符串数组和对象数组 http
  • android xamarin 中的 reCaptcha

    我想在 Xamarin android 应用程序中实现验证码 我抓住了这个在 Android 中集成 googles reCaptcha 验证 https www c sharpcorner com article how to integ
  • 计数物体和更好的填充孔的方法

    我是 OpenCV 新手 正在尝试计算物体的数量在图像中 我在使用 MATLAB 图像处理工具箱之前已经完成了此操作 并在 OpenCV Android 中也采用了相同的方法 第一步是将图像转换为灰度 然后对其进行阈值计算 然后计算斑点的数
  • 在 java 类和 android 活动之间传输时音频不清晰

    我有一个android活动 它连接到一个java类并以套接字的形式向它发送数据包 该类接收声音数据包并将它们扔到 PC 扬声器 该代码运行良好 但在 PC 扬声器中播放声音时会出现持续的抖动 中断 安卓活动 public class Sen
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 如何使用 Cordova 获取当前安装的应用程序的版本?

    我已经找到了应用程序可用性插件 https github com ohh2ahh AppAvailability它主要检查用户是否在其设备上安装了某个应用程序 是否有可能获得应用程序的当前版本 开发者名称 重要 以及所有可能的信息 一般来说
  • Android MediaExtractor seek() 对 MP3 音频文件的准确性

    我在使用 Android 时无法在eek 上获得合理的准确度MediaExtractor 对于某些文件 例如this one http www archive org download emma solo librivox emma 01
  • 在gradle插件中获取应用程序变体的包名称

    我正在构建一个 gradle 插件 为每个应用程序变体添加一个新任务 此新任务需要应用程序变体的包名称 这是我当前的代码 它停止使用最新版本的 android gradle 插件 private String getPackageName
  • Google 云端硬盘身份验证异常 - 需要许可吗? (v2)

    我一直在尝试将 Google Drive v2 添加到我的 Android 应用程序中 但无法获得授权 我收到 UserRecoverableAuthIOException 并显示消息 NeedPermission 我感觉 Google A
  • 如何发布Android .aar源以使Android Studio自动找到它们?

    我正在将库发布到内部 Sonatype Nexus 存储库 Android Studio 有一个功能 可以自动查找通过 gradle 引用的库的正确源 我将 aar 的源代码作为单独的 jar 发布到 Nexus 但 Android Stu
  • 在 android DatePickerDialog 中将语言设置为法语

    有什么办法可以让日期显示在DatePickerDialog用法语 我已经搜索过这个但没有找到结果 这是我的代码 Calendar c Calendar getInstance picker new DatePickerDialog Paym
  • Android Studio 0.4.3 Eclipse项目没有gradle

    在此版本之前 在 Android Studio 中按原样打开 Eclipse 项目似乎很容易 无需任何转换 我更喜欢 Android Studio 环境 但我正在开发一个使用 eclipse 作为主要 IDE 的项目 我不想只为这个项目下载
  • 字符串数组文本格式化

    我有这个字符串 String text Address 1 Street nr 45 Address 2 Street nr 67 Address 3 Street nr 56 n Phone number 000000000 稍后将被使用
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • Android Studio - Windows 7 上的 Android SDK 问题

    我对 Google i o 2013 上发布的最新开发工具 Android Studio 有疑问 我已经成功安装了该程序并且能够正常启动 我可以导入现有项目并对其进行编辑 但是 当我尝试单击 SDK 管理器图标或 AVD 管理器图标时 或者
  • 增加活动的屏幕亮度

    显然 Android 操作系统中至少有三种不同的技术可以改变屏幕亮度 其中两个在纸杯蛋糕之后不再起作用 而第三个被接受的技术显然有一个错误 我想在单视图活动开始时增加屏幕亮度 然后在活动结束时将亮度恢复为用户设置 没有按钮 没有第二个视图或

随机推荐

  • 如何使用谓词从核心数据中获取偶数和奇数值

    我想从我的核心数据实体中获取偶数和奇数值 请查看下面的代码并进行更正 因为它会使应用程序崩溃 NSPredicate predicate if leadFilter rank isEqualToString Even predicate N
  • 在 Delphi 中为 MySQL 创建 UDF

    如何使用 Delphi 创建 MySQL 的 UDF 有人有代码模板吗 我希望将代码模板集成到 Delphi 版本 2007 及更高版本 中 因此我需要这些模板在有或没有 Unicode 支持的情况下都可以使用 首先 谷歌透露 文档 论坛主
  • 如何在 JavaScript 中将哈希值转换为单个对象?

    我有一个以下格式的对象数组 var log billkey Name billvalue ABC billkey Department billvalue Computer 我想将其转换为单个对象 例如 var log Name ABC D
  • Rails 3 提交标签 + html_safe

    这行代码有什么问题吗 这实际上产生 显然我的 html safe 调用没有做任何事情 背景 我在用着推特引导程序也字体真棒我本质上是想实现一个带有图标的提交按钮 为了扩展卢卡斯的答案 我需要一个按钮标签而不是输入 这段代码产生了我想要的效果
  • Maven 无法解决本地依赖关系

    我有一个 Maven 项目 其中包含一个带有外部 jar 文件的项目内存储库 我使用 install 命令将 jar 文件安装到项目内存储库中 当我检查存储库时 jar 文件已安装 我还在pom文件中添加了依赖配置 但是当我运行 mvn 编
  • 用 Dotrine 查询语言写“NOT IN”

    我有两张桌子company id and company has wtax company id 我需要获取所有不在其中的公司company has wtax桌子 原始 SQL 应该是这样的 SELECT id FROM company L
  • 如何在字典列表上动态构建分组依据

    我正在尝试对 IEnumerable 执行 groupby 问题是我在编译时不知道我想要对哪些字段进行分组 我已经发现另一个帖子在堆栈上解释了当类已知并且具有属性时如何执行此操作 但就我而言 我正在处理字典 并且键也仅在运行时已知 我的代码
  • Google Maps API:设置回调以添加标记/折线

    我正在尝试向生成的 Google 地图添加一条折线 折线的坐标是使用 jQuery getJSON 函数 从我的 Web 服务器上的 JSON 文件中获取的 但是 我在回调方面遇到了麻烦 我在一个单独的 JavaScript 文件中定义了三
  • UPDATE 查询的 WHERE 子句中的 SELECT 查询[重复]

    这个问题在这里已经有答案了 可能的重复 Mysql 错误 1093 无法在 FROM 子句中指定更新的目标表 将 SELECT 查询放入 UPDATE 查询的 WHERE 子句中时出现错误 我的查询是这样的 UPDATE subschedu
  • 您可以在使用 PHP 或 JavaScript 提交表单失败后重新填充文件输入吗?

    好的 这是场景 向用户呈现包含文件输入的表单 用户提交表单 由于某种原因 表单未通过验证 验证 向用户呈现的表单中突出显示了错误 文件输入现在为空 问题 是否可以使用用户最初选择的文件的路径重新填充文件输入 PHP 解决方案是理想的选择 但
  • 无法获取框架内容,未捕获 DOMException:阻止了原点为“null”的框架访问跨源框架

    我正在尝试使用 javascript 从我的一个框架访问 html 文档 但我得到了Uncaught DOMException Blocked a frame with origin null from accessing a cross
  • 如何使用 jQuery 将类添加到 Body 标记?

    让我澄清我的问题以及我正在寻找的解决方案 我正在使用 wikispaces com 我想使用 jQuery 动态地为每个页面添加一个唯一的主体类 以某种方式获取 URL 然后插入专门应用于该页面的唯一主体类 所以 这是我的维基空间中的示例网
  • 从 MySQL 数据库的所有表中删除所有零日期

    我在 MySQL 中有很多表 其中 dateTime 列中包含零日期0000 00 00 00 00 00 使用某种管理设置 是否可以禁用零日期并用静态值替换所有零1 1 1900 EDIT 我正在从事数据库迁移工作 涉及将 100 多个
  • Silverlight 中的跨域安全错误?

    我正在尝试将 Yahoo Pipes 的提要读入 Silverlight 应用程序 我不断收到 SecurityException 这听起来像是跨域策略问题 但是雅虎管道 如果您通过 Pipes yahooapis 域 则具有跨域策略 所以
  • 为什么我的多维数组初始化不起作用?

    出于某种原因 在 IntelliJ 中 如果这很重要 当我尝试初始化 2D 数组时 只有第一个框会根据我指定的大小进行初始化 IE int grid new int 9 9 当我运行调试器时 它显示我已经创建了一个数组int 9 有谁知道我
  • 如何将数据从 iCloud 存储文件迁移到本地存储中的新存储文件?

    I have iCloud在我的应用程序中 我已经删除了iCloud从我的应用程序 但在 ios 6 应用程序崩溃 我收到此消息 NSPersistentStoreCoordinator addPersistentStoreWithType
  • 将 app.config 与类库一起使用

    我经常需要创建一个 Net 类库 它需要 app config 来存储数据库连接字符串等内容 但是 这些设置必须位于调用应用程序的 app config 或 web config 中 如果我想跨多个应用程序分发 DLL 这会变得很痛苦 因为
  • 将多行环境变量拆分为几行

    我有以下问题 我在 Jenkins 服务器上执行 Windows 批处理文件 并且必须将多行环境变量 通过 Jenkins 参数设置 拆分为单行 每一行都是另一个程序的参数列表的一部分 Jenkins 文本框参数 foo 224 bar S
  • xtable 的颜色代码单元格

    我用过 R sweave 但是notknit 和 xtable 创建一个表 其中 1 列是标识符 其他三列是 标志 列 它们要么为空 要么包含 1 标志 我希望能够对最后三列进行着色 以便每个单元格要么是绿色 如果为空白 要么是红色 如果包
  • 无法使用 Vitamio 进行直播

    我正在尝试使用Vitamio要运行 RTSP 视频流 我在更新 Vitamio sample 后使用它来运行流VideoViewDemo活动 public class VideoViewDemo extends Activity TODO