首页 > 其他分享 >获取音频播放时长,支持wav格式(环境无声卡)

获取音频播放时长,支持wav格式(环境无声卡)

时间:2023-08-23 15:46:03浏览次数:45  
标签:String filePath int 音频 ais 获取 wav 播放

获取音频文件时长

/**
 * 获取音频播放时长,支持wav格式(环境无声卡)
 * @param filePath 文件授权地址
 * @author knight-jzc
 * @return 秒数
 */
public static Integer getDuration(String filePath){
    try{
        String bath = filePath.split(":")[0];
        AudioInputStream ais;
        String HTTP = "http";
        String HTTPS = "https";
        // 通过授权url获取音频输入流
        if (HTTP.equalsIgnoreCase(bath)||HTTPS.equalsIgnoreCase(bath)) {
            ais = AudioSystem.getAudioInputStream(new URL(filePath));
        } else {
            ais = AudioSystem.getAudioInputStream(new File(filePath));
        }
        AudioFormat format = ais.getFormat();
        // 新建文件获取音频输出流
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        if (AudioSystem.isFileTypeSupported(AudioFileFormat.Type.WAVE,
                ais)) {
            AudioSystem.write(ais, AudioFileFormat.Type.WAVE, outputStream);
        }
        // 获取音频比率和大小以及文件长度
        long audioFileLength = outputStream.toByteArray().length;
        int frameSize = format.getFrameSize();
        int frameRate = (int) format.getFrameRate();
        return (int) (audioFileLength / (frameSize * frameRate));
    }catch (Exception e){
        e.printStackTrace();
        return 0;
    }
}

标签:String,filePath,int,音频,ais,获取,wav,播放
From: https://www.cnblogs.com/LeeJ0/p/17651825.html

相关文章

  • 在集成H.265视频流媒体播放器EasyPlayer.js时遇到"SourceBuffer"报错,应该如何解决?
    EasyPlayer,是由TSINGSEE青犀视频推出的一款功能强大且开放性很高的H.265视频流媒体播放器。它支持H.264和H.265视频格式的播放,并具有稳定性强、流畅播放等特点。此外,EasyPlayer还有多个版本可供选择,例如EasyPlayer-RTSP、EasyPlayer-Pro、EasyPlayer.js等。有用户反馈,在使用播放器......
  • iZotope RX 10 mac强大的音频修复工具
    iZotopeRX10Mac版(置顶文获取)是一个强大的音频修复工具,可帮助您修复音频设备上的错误。它为您提供了高质量的音频质量,并允许您对损坏的乐器进行自定义和编辑。RX是一个免费的插件,它可以修复您设备上的所有音频错误。如果您正在寻找一款能帮助修复音频问题的插件,那么这是一款必......
  • 使用EasyPlayer.js,通过设置解码器参数实现H.265音频解码
    EasyPlayer是一款稳定且流畅的流媒体播放器,它能够支持H.264和H.265视频播放。该播放器能够处理各种视频流格式,包括RTSP、RTMP、HLS、FLV和WebRTC等。EasyPlayer具备多个版本,例如EasyPlayer-RTSP、EasyPlayer.js和EasyPlayerPro,以满足不同用户在不同场景下的需求。此外,EasyPlayer还......
  • 【HarmonyOS】实现将pcm音频文件进行编码并写入文件(API6 Java)
     【关键字】音频编码、管道模式、createEncoder【写在前面】在使用API6开发HarmonyOS应用时,如何将pcm源文件进行编码并写入文件,最后生成aac文件,本文直接附上主要代码开发步骤供大家参考。【主要功能代码】importohos.media.codec.Codec;importohos.media.common.BufferInfo;im......
  • 【HarmonyOS】实现将pcm音频文件进行编码并写入文件(API6 Java)
    【关键字】音频编码、管道模式、createEncoder 【写在前面】在使用API6开发HarmonyOS应用时,如何将pcm源文件进行编码并写入文件,最后生成aac文件,本文直接附上主要代码开发步骤供大家参考。 【主要功能代码】importohos.media.codec.Codec;importohos.media.common.Buf......
  • Qt编写网易云界面 (2) -----搜索栏及播放控件
    今天主要实现网易云界面的下面一行播放器内容,并且完善了搜索框功能,效果如图:播放音乐用的是Qt原身的内置播放,如果以后学了FFmpeg,可以回来重构一下这部分代码,搜索框等也是写死了的,后期可以换成从服务器上查询,当然目前这个项目大多部分都是写死的,只是为了快速熟悉一下Qt开发。主页......
  • 国标GB28181安防视频平台EasyGBS显示状态正常,却无法播放该如何解决?
    国标GB28181视频平台EasyGBS是基于国标GB/T28181协议的行业内安防视频流媒体能力平台,可实现的视频功能包括:实时监控直播、录像、检索与回看、语音对讲、云存储、告警、平台级联等功能。国标GB28181视频监控平台部署简单、可拓展性强,支持将接入的视频流进行全终端、全平台分发,分发的......
  • 安防视频监控平台EasyCVR设备录像回看新增播放倍速
    EasyCVR平台具有融合性强、开放度高和部署轻快的特点。它支持对海量视频进行汇聚和管理,并且与第三方系统实现无缝集成。平台可以处理和分发接入的流媒体视频,支持多种视频格式,如RTSP、RTMP、FLV、HLS和WebRTC等。在视频功能方面,平台提供监控直播、录像、检索与回看、存储、级联和告......
  • H.265网页播放器EasyPlayer外部录像接口开放的方法
    EasyPlayer通过实现视频实时录像功能,不仅提供轻量化、便捷化的视频资源下载能力,同时有效减少了带宽和计算资源的消耗。这种创新的功能使得用户可以灵活地获取所需的视频数据,为其节省使用成本并提升整体效率。今天我们来分享一下EasyPlayer播放器对外开放录像的方法。1)在播放器内部......
  • [语音识别] 基于Python构建简易的音频录制与语音识别应用
    语音识别技术的快速发展为实现更多智能化应用提供了无限可能。本文旨在介绍一个基于Python实现的简易音频录制与语音识别应用。文章简要介绍相关技术的应用,重点放在音频录制方面,而语音识别则关注于调用相关的语音识别库。本文将首先概述一些音频基础概念,然后详细讲解如何利用PyAud......