如何从cloudary文件中检索音频文件长度等音频信息?Rails应用程序更新



我正在使用cloudary构建一个音乐流媒体应用程序来存储所有上传的音频文件。我已经检查过了,但没有遇到任何关于该主题的明确讨论的文章:如何从cloudary文件检索音频信息,如音频文件的长度

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

<% 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%> 

它工作得很好,但我对如何检索文件信息感到困惑,这些信息可能有助于执行各种操作,如:

  • 收集文件的跟踪时长
  • 当前音轨持续时间完成时切换到下一个音轨
  • 显示基于云媒体播放器
  • 信息的自定义媒体播放器

任何帮助,想法或链接将不胜感激!

再次感谢!

——附加信息——

云视频标签呈现如下:云视频标签图像

我使用javascript和css来隐藏云媒体播放器,并在点击播放按钮时触发音频文件。看起来这张轨道卡正确显示

支持回答了我的问题,这是他们提供的。希望这对你有帮助!

嗨髂骨,

当你上传一个新资源并在API调用或upload Preset中指定'image_metadata'参数时,我们将在我们的upload 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_recommendationshttps://cloudinary.com/documentation/video_player_events_analytics

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

此外,您可以集成cloudary Video Player (https://cloudinary.com/documentation/cloudinary_video_player),它使您能够设置视频播放列表,以便在您上传完成后观看(https://cloudinary.com/documentation/cloudinary_video_player)。

最新更新