问题标签 [3gp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1521 浏览

javascript - 在其他地方播放在 Android Cordova 中录制的 3gp 音频

我希望能够在移动设备上的 Cordova 应用程序中录制音频,然后在 Web 应用程序中的台式计算机上播放。但是,我遇到了一些令人讨厌的编解码器问题。

根据科尔多瓦文档:

Android 设备以自适应多速率格式录制音频。指定的文件应以 .amr 扩展名结尾。

这似乎是错误的。根据此处的信息,.amr 文件应具有以下开头的标题:

但是,我的 Nexus 7 中的音频文件具有如下标题:

这似乎表明它们应该具有 .3gp 扩展名。

此外,我认为这两种格式都没有本机浏览器支持(Cordova 之外)。我找到了一个 JavaScript amr 播放库,但是它不能转换 .3gp 文件(即 android 生成的文件)。我敢打赌,可以使用类似的方法来解码 .3gp 文件,但这似乎是一项艰巨的任务。我希望避免这种情况。如果有人愿意这样做,我将永远感激不尽。

如果无法更改 Cordova Media API 生成的格式,则需要解码器。一个纯 JavaScript 解码解决方案将是理想的,闪存转换器几乎一样好。我考虑过的其他可能性有一些问题:

一种可能性是使用另一个应用程序进行转换。例如,适用于 android 的 ffmpeg。我想避免这种情况,因为从 Cordova 启动意图需要一个 Phonegap Build 不提供的插件,并且用户必须处理安装和操作另一个应用程序。

另一种可能性是在云端进行解码。如果可能的话,我不想运行我自己的任何网络服务。我尝试了 encoding.com 并且能够成功地将我的一个音频文件转换为 mp4,但是他们还没有 Dropbox 文件监视支持。如果音频文件在到达之前需要加密,例如因为 HIPAA,那么云解码会变得非常复杂,如果不是不可能的话。

请帮忙。谢谢你。

0 投票
1 回答
1122 浏览

android - 从实时视频流中获取帧

我正在使用 MediaRecorder 类将实时视频从我的 Android 手机上的相机流式传输到我的计算机。

这是基本的想法。所以我想实时显示这个流。我的计划是使用 FFMpeg 将最新帧转换为 .bmp 并在每次有新帧时在我的 C# 程序上显示 .bmp。

问题是在我停止录制之前没有标题。所以除非有标题,否则我不能使用 FFMpeg。我看过 spydroid 并使用 RTP,但出于各种原因我不想使用这种方法。

关于如何轻松做到这一点的任何想法?

0 投票
1 回答
305 浏览

android - 在扩展格式上未检测到 3gp 文件

我在某些扩展名的 sd 卡上的文件夹中检查我的文件。一切顺利,除了 .3gp 文件似乎无法被此代码识别,尽管它以可能的格式列出。知道可能是什么原因造成的吗?

0 投票
1 回答
1044 浏览

android - 如何区分 3gp 音频和 3gp 视频

我直接从内容提供商访问视频,而不将其存储在我的数据库中。但它给了我 3gp 音频文件以及其他视频和 3gp 视频。我怎么能只过滤视频文件。我正在为 API 8 工作

0 投票
0 回答
1881 浏览

android - 从 Internet 下载 3gp 视频文件

我想从某个 http 地址下载视频文件(扩展名 3gp)。我的应用程序开始下载,但在下载 9216 字节后停止。文件长度为 1734741。我试图通过在清单文件中包含以下行来增加堆(因为我收到了一些关于增加堆大小的警告):

机器人:大堆=“真”

它没有帮助。这是处理下载的java代码片段:

该应用程序使用进度条来显示下载进度。因为文件长度很大(1734741字节),所以我做了对数计算。另外,我有几条 Log.v 消息来查看发生了什么,我希望这不会妨碍对代码的理解。无论如何,我的问题仅涉及3gp文件的不完整下载。

我该怎么做才能下载视频文件?任何想法?在此先感谢您的帮助。

0 投票
0 回答
662 浏览

android - 无法使用 android 模拟器下载视频文件

这是下载 3pg 视频文件的代码。也许有人可以让我知道它有什么问题。我真的需要帮助。无法下载文件:

块引用

奇怪的是,有时方法 connection.getContentLength() 返回 -1 而不是文件长度。

0 投票
1 回答
3741 浏览

android - 使用 Android 服务录制音频 - 未创建文件

我现在使用应用程序开始录制为 Android 服务而不是主线程。但是使用此服务停止服务后:我找不到录制的音频文件

以下是我的服务代码:

0 投票
1 回答
384 浏览

android - Android VideoView 在某些设备上无法播放 *3.gp 文件

晚上好,我有以下问题。我想在 VideoView 中播放视频格式 * .3gp。我尝试使用此代码:

在模拟器和 HTC Desire S 上一切正常。但是有一个中国平板电脑 Onda V972,每次都给我一个“播放视频时出错”:

请告诉我这个问题是否可以解决。太感谢了。也许还有另一种方法可以将视频文件加载到 VideoView 中?

更新 21.06:

刚刚更新了我的平板电脑的固件,现在视频正在播放但没有循环播放。我已经尝试了以下代码,但结果是一样的 - HTC 和模拟器运行良好,但平板电脑没有循环播放视频。我也试过 *.mp4 ,都一样:

问题是 - 如何让视频在所有设备上循环播放?

0 投票
1 回答
1943 浏览

android - Android 2.x 上的 Android VideoView 错误 1,-1004

我正在尝试在 VideoView 中从我的服务器播放远程视频 (.mp4)。在我的 HTC One S (4.1.1) 上一切正常,但当我在 Android 2.x 设备上尝试时,我收到一条消息,指出无法播放视频,在 LogCat 中看到错误 1,-1004 . 我还看到无法在客户端打开文件,正在尝试服务器端。

当然,我谷歌发现的错误与无法读取文件有关。我已经确保我的清单中设置了 INTERNET 权限,我也知道该文件可以在我的 One S 上运行。所以我唯一的选择是早期的 Android 设备无法读取的编解码器。所以我尝试使用 Adob​​e Media Encoder 对其进行转换,我已将其转换为一系列不同的设置,包括 3GPP 但没有成功。

有没有人有过为 Android 转换视频文件并使其在 Android 2.x 上运行的经验?

干杯大安

0 投票
1 回答
2442 浏览

java - 从 AMR-NB 文件中提取音频帧

我编写了一个算法来从 AMR 文件中提取每一帧。我认为文件的前 6 个字节是标题,以下信息是音频帧。每个音频帧由帧头和音频数据组成。帧头以字节为单位告知帧的大小(使用 CMR 模式表 - http://www.developer.nokia.com/Community/Wiki/AMR_format)。帧大小存储在帧的第一个字节 -> 第二位到第 5 位,将 MSB 计为第一位。

该算法不起作用,我决定以二进制方式(0 和 1)在屏幕上显示每个字节,看起来有时帧大小号大于 7,而 CMR 表只有 0...7 个值。

下面是 CMR 表:

我的输出(来自 amr 文件的每个字节)是:

我取了字节 nr 6:10011110 -> 0011 是 nr 3,3 对应的 CMR 值是 18。我跳过 18 个字节,然后到达字节 nr。6+18 = 24: 00000000 - 0 的 CMR 值为 13,我跳过另外 13 个字节 -> 24+13=37: 01101110 -> 1101is 13 WHICH ISN'T IN CMR table

我做错了什么?我想以二进制方式打印是正确的。下面是读取每一帧的算法(不用于显示二进制方式):

[EDIT]

看来我做错了从字节到 BitSet 的转换,然后导致算法失败。在字节 nr.6 处,它应该表示为数字 121,但错误地表示为 nr 158。二进制输出也是错误的,因为它使用相同的转换。我没有检查转换方法(我没有在这里发布)。对不起打扰。