- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我们正在 Android 手机上录制一些音频,根据 vlc 信息,这些音频具有以下格式:
Codec: MPEG AAC Audio (mp4a)
Language: English
Type: Audio
Channels: Stereo
Sample rate: 32000 Hz
Bits per sample: 32
上述文件无法在 mime 类型 audio/mpeg
的 safari 浏览器上播放,但是一旦我们将 mime 更改为 audio/mp4
它就开始播放了 Safari 浏览器。对于 Android,我们使用 API 来使用 api 资源流式传输此文件,如下所示:
@GET
@UnitOfWork
@Produces("audio/mpeg")
@Path("/getaudiofile/{fileId}")
public Response getPart(@Auth AuthUser authUser, @PathParam("fileId") Long fileId) {
File audioFile = new File(filesTableDAO.getFilePathById(fileId));
if(audioFile.exists()) {
return Response.ok().entity(audioFile).build();
} else {
// ... Return 404 here
}
}
但使用上述 API 时,有些文件可以播放,有些则不能播放,这与之前的 Safari 情况类似。但是 Safari 问题很快就消失了,我们将 mime 更改为 "audio/mp4"
或 "video/mp4"
两种 mime 类型都可以工作。
但对于 API /getaudiofile/{fileId}
,以下 MIME 类型均无法与 javax.ws.rs @Produces
注释一起使用:
audio/mp4
video/mp4
audio/mpeg
audio/m4a
audio/mpeg-4
audio/mp4a
但是对于 audio/mpeg
,有些文件可以播放,有些则不能。
正确的 mime 类型是什么,或者文件可以在从 API 返回时自行设置编解码器或 mime 信息?
或者有什么方法可以制作Android Media Player知道 MIME 类型吗?喜欢 html tag .
我们有 mime“audio/mpeg”流媒体文件内容,媒体播放器可以轻松播放较小的文件。但是更大的流媒体内容无法播放,例如10 - 20 MB。
播放器的流 URL 有问题,无法获得任何 MIME 扩展名,例如mp3 或 mp4。因此,我们希望媒体播放器提前知道流式传输的内容类型。
MediaPlayer API 是否支持在播放前将 mime 类型设置为播放器实例?
更新
1] 大文件小文件播放时会出现这种情况,播放几秒(1-50 秒)的录音没有问题,播放长度超过一分钟的录音文件无法播放。
2] 如果同一文件在本地文件系统上,则从经过身份验证的 URL 播放时播放失败。
最佳答案
如果我理解正确你的问题,或许你可以试试
openTypedAssetFile
public AssetFileDescriptor openTypedAssetFile (Uri uri, String mimeTypeFilter, Bundle opts)
Called by a client to open a read-only stream containing data of a particular MIME type. This is like openAssetFile(Uri, String), except the file can only be read-only and the content provider may perform data conversions to generate data of the desired type.
openTypedAssetFile
的文档是 here .
另请查看 openWTypedAssetFileDescriptor
的 API here .
关于java - "audio/mpeg"某些文件的流 api 无法播放某些文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52777862/
我做了一个项目,使用两个不同的textview进行触摸来播放两个音频。 这是一个文本 View 的简单代码 tv.setOnTouchListener(new OnTouchListener() {
我正在使用 pygame 模块在 python 中操作声音文件。它在交互式 python session 中工作正常,但相同的代码在 bash 中不会产生任何结果: 交互式Python $ sudo
请注意它只能是 JavaScript。请参阅下面我当前的 HTML。我需要像当前代码一样在页面之间旋转。但是,我需要能够在页面之间暂停/播放。
我有一个带有一堆音频链接的html。我正在尝试使所有音频链接都在单击时播放/暂停,并且尝试了here解决方案。这正是我所追求的,只是我现在不得不修改此功能以应用于代码中的所有音频链接(因为我不能为每个
在尝试进入我的代码中的下一个文件之前,我尝试随机播放.wav文件数毫秒。最好的方法是什么? 我目前有以下代码: #!/usr/bin/env python from random import ran
我有2个回调函数,一个播放音频,另一个停止音频。 function Play_Callback(hObject, eventdata, handles) global path; global pla
我有一个电台应用程序,并与carplay集成。在Carplay仪表板中,我仅看到专辑封面图像和停止按钮。我想在仪表板上显示播放/暂停和跳过按钮。如果您对该站有任何了解,可以帮我吗? 最佳答案 您需要使
我正在使用 ffmpeg 创建一个非常基本的视频播放器。库,我有所有的解码和重新编码,但我坚持音频视频同步。 我的问题是,电影有音频和视频流混合(交织),音频和视频以“突发”(多个音频包,然后是并列的
我不知道我在做什么错 $(document).ready(function() { var playing = false; var audioElement = document.
我正在尝试通过(input:file)Elem加载本地音频文件,当我将其作为对象传递给音频构造函数Audio()时,它不会加载/播放。 文件对象参数和方法: lastModified: 1586969
在 Qt 中创建播放/暂停按钮的最佳方法是什么?我应该创建一个操作并在单击时更改其图标,还是应该创建两个操作然后以某种方式在单击时隐藏一个操作?如何使用一个快捷键来激活这两个操作? (播放时暂停,暂停
我正在用 Python 和 SQLite 构建一个预订系统。 我有一个 Staff.db 和 Play.db (一对多关系)。这个想法是这样的:剧院的唯一工作人员可以通过指定开始日期和时间来选择何时添
我有一个服务于 AAC+ (HE v2) 的 Icecast 服务器。我在我的网页中使用 JPlayer 来播放内容。在没有 Flash Player 的 Chromium 中,它工作得很好。 对于支
当我运行我的方法时,我收到一个MediaException。我使用 playSound("src/assets/timeup.mp3"); 调用该方法。 private void playSound(
我有一项正在播放播客的服务。我希望该服务检测用户何时按下暂停或从他们的 BT radio 播放,以便我可以停止和启动它。对于我的生活,我无法弄清楚要向我的监听器添加什么过滤器(当我按下 BT 按钮时,
我对 Java 不是很在行,在研究网站上的音乐循环的简单播放/暂停按钮后,我得到了这段代码。它可以很好地离线测试,但在上传到 FTP 服务器后,它不会在任何浏览器中播放音频,我得到 SyntaxErr
我有一个使用 flickity carousel library 创建的视频轮播, 见过 here on codepen .我想要发生的是,当用户滑动轮播时,所选幻灯片停止播放,然后占据所选中间位置的
这是一个 JSFiddle: http://jsfiddle.net/8LczkwLz/19/ HTML: JS: var flashcardAudio = documen
我的问题是我无法将歌曲标题文本保持在 line-height: 800px;当用户播放或暂停播放器时。我设法在 :hover 上做到了。这似乎是一件非常棘手的事情,这真的是我第一次遇到 CSS 如此困
我还没有找到与我的完全一样的帖子,所以这就是问题所在。我正在制作一个 mp3 播放器,播放/暂停是两个单独的按钮。这是我的代码。 prevButton = document.getElementByI
我是一名优秀的程序员,十分优秀!