如何从 Cloudinary 文件中检索音频文件的长度等音频信息? Rails 应用已更新

How to retrieve audio information like length of audio file from Cloudinary file? Rails App UPDATED

我正在使用 Cloudinary 构建一个音乐流应用程序来存储所有上传的音频文件。我已经四处查看,但没有找到关于该主题的任何明确讨论的文章:How to retrieve audio information like length of audio file from cloudinary file

目前,Cloudinary 没有音频标签,所以我正在使用这样的视频助手:

<% if track.track.attached? %>
<%= cl_video_tag track.track.key,:source_types => [:mp3],:controls => true,:poster => false, class: "track-play play-track", id: "play-track"%>
<%end%> 

它运行良好,但我对如何检索可能有助于执行各种操作的文件信息感到困惑:

如有任何帮助、想法或链接,我们将不胜感激!

再次感谢!

--- 附加信息 ---

cloudinary 视频标签呈现如下: Cloudinary Video Tag image

我使用 javascript 和 css 来隐藏 cloudinary 媒体播放器并在单击播放按钮时触发音频文件。看起来像这样 Track Card Properly Displayed

更新

支持人员回答了我的问题,这就是他们提供的内容。希望对您有所帮助!

嗨,伊利亚,

当您上传新资产并在 API 调用或上传预设中指定 'image_metadata' 参数时,我们将在上传 API 响应,包括音视频资源时长。

例如,对于我上传到自己帐户的随机 m4a 文件,image_metadata=true 的响应包含:

...
audio:
{ codec: 'aac',
bit_rate: '134511',
frequency: 48000,
channels: 2,
channel_layout: 'stereo' },
video: {},
is_audio: true,
bit_rate: 144577,
duration: 3.540146,
original_filename: 'test' }

您还可以通过我们管理员 API 的 'get resources' 方法获取现有资产的信息,并使用它来同步您自己的数据库。

如果您需要在客户端引用此信息,并且无法将其存储在您自己的数据库中,另一种选择是将持续时间存储在资产的 'context' 元数据中,如果您使用我们的客户端资产列表功能,将返回其值:https://cloudinary.com/documentation/advanced_url_delivery_options#client_side_asset_lists

在您的情况下,您可以将标签添加到同一播放列表中的所有资产,然后使用该播放列表的 .json 列表来获取资产详细信息?关于如何从一个文件移动到下一个文件,我认为 Rails 中没有具体的帮助方法,但我们的视频播放器确实支持 API 用于将多个文件添加到播放列表,并发送可用于检测曲目何时完成的事件,以便您更改播放列表的内容: https://cloudinary.com/documentation/video_player_playlists_recommendations https://cloudinary.com/documentation/video_player_events_analytics

当您将资产上传到 Cloudinary 时,上传响应包括可以保存在您的数据库中的音频文件的持续时间。

此外,您还可以集成Cloudinary Video Player (https://cloudinary.com/documentation/cloudinary_video_player) which gives you the ability to setup a playlist of videos to watch after the one you have uploaded finishes (https://cloudinary.com/documentation/cloudinary_video_player)。