使用Spring Boot服务音频文件

时间:2018-11-22 07:23:06

标签: spring angular spring-boot

我将Spring Boot 1.5与Undertow结合使用,以服务于angular 5应用程序。该应用程序正在运行,但是出现以下问题。

我想在客户端上播放音频文件,但不能。在浏览器上,我可以确认音频文件是否存在,其状态码为206部分内容,但在需要时无法播放音频文件。当我从浏览器“ http://localhost:8080/app/assets/audio/beep-sound.mp3”直接访问文件时,我可以收听音频。

此外,当我使用angular-cli为应用程序提供服务时,音频也可以正常工作。 我是否需要在Spring Boot中进行任何配置才能启用此功能?

预先感谢

/*HTML file*
<audio #audioOption>
  <source src='assets/audio/beep-sound.mp3' type="audio/mp3">
</audio>

@ViewChild('audioOption') audioPlayerRef: ElementRef;
...
this.audioPlayerRef.nativeElement.play();

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。这就是春季靴子所需要的。

@Configuration
@EnableConfigurationProperties({ ResourceProperties.class })
public class StaticResourcesConfiguration extends WebMvcConfigurerAdapter {

    static final String[] STATIC_RESOURCES = new String[] { 
            "/**/*.css", 
            "/**/*.html", 
            "/**/*.js", 
            "/**/*.json",
            "/**/*.bmp",
            "/**/*.jpeg",
            "/**/*.jpg",
            "/**/*.png",
            "/**/*.ttf",
            "/**/*.eot",
            "/**/*.svg",
            "/**/*.woff",
            "/**/*.woff2",
            "/**/*.mp3"
    };

    @Autowired
    private ResourceProperties resourceProperties = new ResourceProperties();

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler(STATIC_RESOURCES).addResourceLocations(resourceProperties.getStaticLocations());
    }
}