Spring Boot 集成阿里云直播点播
在当今数字化时代,视频直播和点播服务已经成为许多应用的核心功能。阿里云提供了强大的直播和点播服务,能够满足各种规模的应用需求。而 Spring Boot 作为一种流行的 Java 开发框架,能够快速构建高效的应用程序。本文将详细介绍如何在 Spring Boot 项目中集成阿里云直播点播服务,包括服务介绍、集成步骤、配置项以及实际应用案例。
一、引言
随着互联网的发展,视频直播和点播服务越来越受到人们的关注。无论是在线教育、企业培训、电商直播还是娱乐视频,都需要高质量的视频服务。阿里云直播点播服务提供了稳定、高效、安全的视频解决方案,能够满足各种应用场景的需求。而 Spring Boot 作为一种快速开发框架,能够帮助开发者快速构建应用程序,提高开发效率。将 Spring Boot 与阿里云直播点播服务集成,可以构建出强大的多媒体应用,为用户提供更好的体验。
二、阿里云直播点播服务介绍
(一)阿里云直播服务
- 功能特点
- 高并发、低延迟:能够支持大规模的用户同时观看直播,延迟低至秒级。
- 多种推流方式:支持 RTMP、FLV、HLS 等多种推流方式,满足不同设备和场景的需求。
- 实时转码:可以根据用户的需求进行实时转码,支持多种分辨率和码率,适应不同的网络环境。
- 直播录制:可以将直播内容录制下来,方便用户回放和存档。
- 安全防护:提供多种安全防护措施,如防盗链、IP 黑名单等,保障直播的安全。
- 应用场景
- 电商直播:为电商平台提供直播服务,展示商品、介绍产品特点、进行促销活动等。
- 在线教育:为在线教育平台提供直播服务,进行远程教学、在线辅导等。
- 企业培训:为企业提供直播服务,进行内部培训、会议直播等。
- 娱乐直播:为娱乐平台提供直播服务,进行游戏直播、才艺表演等。
(二)阿里云点播服务
- 功能特点
- 高可靠、高可用:采用分布式架构,保证视频的存储和播放的高可靠性和高可用性。
- 多种上传方式:支持本地上传、URL 上传、FTP 上传等多种上传方式,方便用户上传视频。
- 视频处理:提供视频转码、截图、水印、加密等多种视频处理功能,满足用户的不同需求。
- 播放控制:支持多种播放控制功能,如播放进度控制、音量控制、全屏播放等。
- 数据分析:提供视频播放数据统计分析功能,帮助用户了解视频的播放情况。
- 应用场景
- 在线视频平台:为在线视频平台提供视频存储和播放服务,支持用户上传、观看、分享视频。
- 企业宣传视频:为企业提供视频存储和播放服务,展示企业形象、产品介绍、企业文化等。
- 教育培训视频:为教育培训平台提供视频存储和播放服务,支持用户上传、观看、下载教学视频。
- 个人视频分享:为个人用户提供视频存储和播放服务,方便用户分享自己的生活点滴、旅游经历等。
三、Spring Boot 集成阿里云直播点播服务的步骤
(一)开通阿里云直播点播服务
- 注册阿里云账号
- 如果还没有阿里云账号,可以前往阿里云官网进行注册。
- 开通直播点播服务
- 在阿里云控制台中,选择 “产品与服务”->“视频服务”->“直播” 或 “点播”,根据提示开通相应的服务。
(二)创建直播或点播应用
- 登录阿里云控制台
- 使用注册的阿里云账号登录阿里云控制台。
- 创建直播应用
- 在阿里云控制台中,选择 “产品与服务”->“视频服务”->“直播”,点击 “创建应用” 按钮,根据提示创建直播应用。
- 创建点播应用
- 在阿里云控制台中,选择 “产品与服务”->“视频服务”->“点播”,点击 “创建应用” 按钮,根据提示创建点播应用。
(三)获取阿里云直播点播服务的 AccessKey 和 SecretKey
- 登录阿里云控制台
- 使用注册的阿里云账号登录阿里云控制台。
- 进入 AccessKey 管理页面
- 在阿里云控制台中,选择 “用户头像”->“AccessKey 管理”,进入 AccessKey 管理页面。
- 创建 AccessKey
- 如果还没有 AccessKey,可以点击 “创建 AccessKey” 按钮,根据提示创建 AccessKey。创建成功后,会显示 AccessKey ID 和 AccessKey Secret。
(四)在 Spring Boot 项目中添加阿里云直播点播服务的依赖
- 在 pom.xml 文件中添加依赖
- 在 Spring Boot 项目的 pom.xml 文件中,添加以下依赖:
<!-- 阿里云直播服务依赖 -->
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-live</artifactId><version>4.4.2</version>
</dependency><!-- 阿里云点播服务依赖 -->
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-vod</artifactId><version>2.15.2</version>
</dependency>
- 导入依赖
- 在项目的构建工具(如 Maven 或 Gradle)中,导入上述依赖。
(五)配置阿里云直播点播服务的参数
- 在 application.properties 文件中添加配置
- 在 Spring Boot 项目的 application.properties 文件中,添加以下配置:
# 阿里云直播服务配置
aliyun.live.accessKeyId=<your_access_key_id>
aliyun.live.accessKeySecret=<your_access_key_secret>
aliyun.live.domain=<your_live_domain># 阿里云点播服务配置
aliyun.vod.accessKeyId=<your_access_key_id>
aliyun.vod.accessKeySecret=<your_access_key_secret>
其中,<your_access_key_id>和<your_access_key_secret>是在阿里云控制台中获取的 AccessKey ID 和 AccessKey Secret,<your_live_domain>是直播应用的域名。
- 读取配置参数
- 在 Spring Boot 项目中,可以使用
@Value注解读取配置参数,例如:
- 在 Spring Boot 项目中,可以使用
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component
public class AliyunLiveConfig {@Value("${aliyun.live.accessKeyId}")private String accessKeyId;@Value("${aliyun.live.accessKeySecret}")private String accessKeySecret;@Value("${aliyun.live.domain}")private String domain;public String getAccessKeyId() {return accessKeyId;}public String getAccessKeySecret() {return accessKeySecret;}public String getDomain() {return domain;}
}
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component
public class AliyunVodConfig {@Value("${aliyun.vod.accessKeyId}")private String accessKeyId;@Value("${aliyun.vod.accessKeySecret}")private String accessKeySecret;public String getAccessKeyId() {return accessKeyId;}public String getAccessKeySecret() {return accessKeySecret;}
}
(六)创建直播或点播服务的客户端
- 创建直播服务客户端
- 在 Spring Boot 项目中,可以使用阿里云直播服务的 SDK 创建直播服务客户端,例如:
import com.aliyun.live20161101.Client;
import com.aliyun.live20161101.models.DescribeLiveStreamsOnlineListRequest;
import com.aliyun.live20161101.models.DescribeLiveStreamsOnlineListResponse;
import com.aliyun.teaopenapi.models.Config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;@Component
public class AliyunLiveClient {@Autowiredprivate AliyunLiveConfig aliyunLiveConfig;public DescribeLiveStreamsOnlineListResponse describeLiveStreamsOnlineList() {try {Config config = new Config().setAccessKeyId(aliyunLiveConfig.getAccessKeyId()).setAccessKeySecret(aliyunLiveConfig.getAccessKeySecret());Client client = new Client(config);DescribeLiveStreamsOnlineListRequest request = new DescribeLiveStreamsOnlineListRequest();return client.describeLiveStreamsOnlineList(request);} catch (Exception e) {e.printStackTrace();return null;}}
}
- 创建点播服务客户端
- 在 Spring Boot 项目中,可以使用阿里云点播服务的 SDK 创建点播服务客户端,例如:
import com.aliyun.vod20170321.Client;
import com.aliyun.vod20170321.models.GetVideoPlayAuthRequest;
import com.aliyun.vod20170321.models.GetVideoPlayAuthResponse;
import com.aliyun.teaopenapi.models.Config;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;@Component
public class AliyunVodClient {@Autowiredprivate AliyunVodConfig aliyunVodConfig;public GetVideoPlayAuthResponse getVideoPlayAuth(String videoId) {try {Config config = new Config().setAccessKeyId(aliyunVodConfig.getAccessKeyId()).setAccessKeySecret(aliyunVodConfig.getAccessKeySecret());Client client = new Client(config);GetVideoPlayAuthRequest request = new GetVideoPlayAuthRequest().setVideoId(videoId);return client.getVideoPlayAuth(request);} catch (Exception e) {e.printStackTrace();return null;}}
}
(七)使用直播或点播服务的客户端进行操作
- 使用直播服务客户端进行操作
- 在 Spring Boot 项目中,可以使用直播服务客户端进行各种操作,例如查询在线直播流列表、创建直播推流地址等,例如:
import com.aliyun.live20161101.models.DescribeLiveStreamsOnlineListResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class AliyunLiveService {@Autowiredprivate AliyunLiveClient aliyunLiveClient;public DescribeLiveStreamsOnlineListResponse describeLiveStreamsOnlineList() {return aliyunLiveClient.describeLiveStreamsOnlineList();}
}
- 使用点播服务客户端进行操作
- 在 Spring Boot 项目中,可以使用点播服务客户端进行各种操作,例如获取视频播放地址、上传视频等,例如:
import com.aliyun.vod20170321.models.GetVideoPlayAuthResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;@Service
public class AliyunVodService {@Autowiredprivate AliyunVodClient aliyunVodClient;public GetVideoPlayAuthResponse getVideoPlayAuth(String videoId) {return aliyunVodClient.getVideoPlayAuth(videoId);}
}
四、Spring Boot 集成阿里云直播点播服务的配置项
(一)阿里云直播服务配置项
aliyun.live.accessKeyId:阿里云直播服务的 AccessKey ID。aliyun.live.accessKeySecret:阿里云直播服务的 AccessKey Secret。aliyun.live.domain:直播应用的域名。
(二)阿里云点播服务配置项
aliyun.vod.accessKeyId:阿里云点播服务的 AccessKey ID。aliyun.vod.accessKeySecret:阿里云点播服务的 AccessKey Secret。
五、Spring Boot 集成阿里云直播点播服务的实际应用案例
(一)电商直播应用
- 应用场景
- 在电商平台中,商家可以通过直播的方式展示商品、介绍产品特点、进行促销活动等,吸引用户购买商品。
- 实现步骤
- 在 Spring Boot 项目中,集成阿里云直播服务,创建直播应用,获取直播推流地址和播放地址。
- 在电商平台的前端页面中,嵌入直播播放器,展示直播内容。
- 用户可以在直播页面中观看直播、与商家互动、购买商品等。
(二)在线教育应用
- 应用场景
- 在在线教育平台中,教师可以通过直播的方式进行远程教学、在线辅导等,学生可以在直播页面中观看直播、提问、与教师互动等。
- 实现步骤
- 在 Spring Boot 项目中,集成阿里云直播服务,创建直播应用,获取直播推流地址和播放地址。
- 在在线教育平台的前端页面中,嵌入直播播放器,展示直播内容。
- 教师可以在直播页面中进行教学、分享课件、与学生互动等。
- 学生可以在直播页面中观看直播、提问、与教师互动等。
(三)视频点播应用
- 应用场景
- 在视频点播平台中,用户可以上传、观看、分享视频,平台可以对视频进行管理、分类、推荐等。
- 实现步骤
- 在 Spring Boot 项目中,集成阿里云点播服务,创建点播应用,获取视频上传地址和播放地址。
- 在视频点播平台的前端页面中,嵌入视频播放器,展示视频内容。
- 用户可以在视频点播页面中上传、观看、分享视频,平台可以对视频进行管理、分类、推荐等。
六、性能优化和故障排除
(一)性能优化
- 优化直播推流和播放质量
- 选择合适的推流和播放协议,如 RTMP、FLV、HLS 等,根据网络环境和设备类型进行选择。
- 调整推流和播放的参数,如分辨率、码率、帧率等,根据网络环境和设备性能进行调整。
- 使用阿里云直播服务的实时转码功能,根据用户的网络环境和设备类型进行实时转码,提高直播的质量和兼容性。
- 优化点播视频的加载速度
- 使用阿里云点播服务的视频加速功能,提高视频的加载速度和播放流畅度。
- 对视频进行合理的分类和标签管理,方便用户查找和观看视频。
- 优化视频播放器的代码,提高视频的加载速度和播放流畅度。
(二)故障排除
- 直播推流和播放故障
- 检查推流设备和网络环境,确保推流设备正常工作,网络环境稳定。
- 检查直播应用的配置和参数,确保直播应用的配置正确,参数合理。
- 查看阿里云直播服务的控制台,查看直播流的状态和错误信息,根据错误信息进行故障排除。
- 点播视频播放故障
- 检查视频播放器的代码,确保视频播放器的代码正确,没有错误。
- 检查视频的上传和处理过程,确保视频上传成功,处理过程正常。
- 查看阿里云点播服务的控制台,查看视频的状态和错误信息,根据错误信息进行故障排除。
七、总结
本文详细介绍了如何在 Spring Boot 项目中集成阿里云直播点播服务,包括服务介绍、集成步骤、配置项、实际应用案例以及性能优化和故障排除等方面的内容。通过集成阿里云直播点播服务,我们可以构建出强大的多媒体应用,为用户提供更好的体验。在实际应用中,我们可以根据具体的需求和场景,灵活地使用阿里云直播点播服务,提高应用的质量和竞争力。希望本文对大家在 Spring Boot 集成阿里云直播点播服务方面有所帮助。
相关文章:
Spring Boot 集成阿里云直播点播
在当今数字化时代,视频直播和点播服务已经成为许多应用的核心功能。阿里云提供了强大的直播和点播服务,能够满足各种规模的应用需求。而 Spring Boot 作为一种流行的 Java 开发框架,能够快速构建高效的应用程序。本文将详细介绍如何在 Spring…...
舍伍德业务安全架构(Sherwood Applied Business Security Architecture, SABSA)
舍伍德业务安全架构(Sherwood Applied Business Security Architecture, SABSA)是一个企业级的安全架构框架,它提供了一个全面的方法来设计和实现信息安全策略。SABSA模型将业务需求与安全控制相结合,确保企业的信息安全措施能够支…...
论可以对抗ai编程的软件开发平台(直接把软件需求描述变成软件的抗ai开发平台)的设计
论可以对抗ai编程的软件开发平台(直接把软件需求描述变成软件的抗ai开发平台)的设计 大家知道,传统的数学密码,都可以被量子计算机破解,但是这些年发展出很多数学密码,量子计算机也破解不了,叫…...
饿了么数据库表设计
有商家表、商品表、商品规格表、购物车表,不难分析出表是不够全面的。 (1)首先分析需要补充的表 1.对于购物车而言肯定有对应的用户,因此要添加一个用户表。 2.商品规格是冷,热,半分糖、全糖,对于冷热和半分糖是可以分…...
Flink处理乱序的数据的最佳实践
目录 网络延迟和分布式系统 事件时间与处理时间的差异 事件时间和水位线(Watermark) 时间窗口(TimeWindow) 滚动窗口(Tumbling Window) 滑动窗口(Sliding Window) 会话窗口(Session Window) 自定义Watermark生成策略 设置允许延迟和侧输出 设置允许的最大延迟时间 使…...
Android OpenGL ES详解——模板Stencil
目录 一、概念 1、模板测试 2、模板缓冲 二、模板测试如何使用 1、开启和关闭模板测试 2、开启/禁止模板缓冲区写入 3、模板测试策略函数 4、更新模板缓冲 5、模板测试应用——物体轮廓 三、模板缓冲如何使用 1、创建模板缓冲 2、使用模板缓冲 3、模板缓冲应用——…...
vscode在cmake config中不知道怎么选一个工具包?select a kit
vscode在cmake config中不知道怎么选一个工具包,或者发现一直在用VS的工具包想换成自己的工具包。select a kit vscode在cmake config中不知道怎么选一个工具包,或者发现一直在用VS的工具包想换成自己的工具包。select a kit 1.在VSCode中 按ctrlshift…...
无人机之无线电监测设备技术篇
一、技术原理 无人机的无线电监测设备主要通过捕捉和分析无人机发出的无线电信号来实现对无人机的监测和定位。这些信号包括无人机的上行遥控信号、下行数据图传信号等。设备采用多种技术手段,如频谱分析、信号解调、定位算法等,对接收到的信号进行处理和…...
【系统架构设计师】预测试卷一:案例分析
更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 试题一(共25分)【问题 1】(12分)【问题 2】(13分)试题二(共 25分)【问题 1】(12分)【问题 2】(7分)【问题 3】(6分)试题三(共25分)【问题 1】(9分)【问题 2】(16分)试题四(共25分)【问题 1】…...
一篇文章教会你I2C通信(软件I2C和硬件I2C)以读取MPU6050为例,附STM32代码示例
目录 一、I2C通信介绍: (1)基本概念: (2)特点: (3)工作原理: 二、I2C通信原理: (1)I2C 物理层: &…...
Python实现SPFA算法
目录 Python实现SPFA算法引言一、SPFA算法的理论基础1.1 最短路径问题1.2 SPFA算法的基本原理1.3 SPFA算法的复杂度 二、SPFA算法的Python实现2.1 基本实现2.2 案例一:使用SPFA算法进行城市交通最短路径计算2.2.1 实现代码 2.3 案例二:负权重边的处理2.3…...
MYSQL安装(ubuntu系统)
rpm -qa 查询安装软件包 ps axj 查询服务 卸载mysql(万不得已) ps axj | grep mysql 查看是否存在mysql服务 systemctl stop mysqld 关闭该服务 rpm -qa | grep mysql 查安装mysql安装包 rmp -qa | grep mysql | xargs (yum apt) -y remove进行批量…...
Cpp二叉搜索树的讲解与实现(21)
文章目录 前言一、二叉搜索树的概念定义特点 二、二叉树的实现基本框架查找插入删除当只有0 ~ 1个孩子的时候当有2个孩子的时候 三、二叉树的应用K模型KV模型 四、二叉树的性能分析总结 前言 这是全新的一个篇章呢,二叉搜索树是我们接下来学习set、map的前提 迈过它…...
微服务设计模式 — 补偿事务模式(Compensating Transaction Pattern)
微服务设计模式 — 补偿事务模式(Compensating Transaction Pattern) 定义 在云计算和分布式系统中,管理跨多个微服务或组件的事务一致性是一项极具挑战性的任务,补偿事务模式Compensating Transaction Pattern)是一种…...
20 实战:形状编码、运动补偿和纹理编码的实现(基于python)
在当今多媒体时代,视频处理与编码已经成为各个领域中不可或缺的一部分。无论是视频编辑、流媒体传输,还是计算机视觉应用,视频编码技术都扮演着关键角色。本文将详细解析一个基于Python的图形用户界面(GUI)视频编码器。通过对代码的逐行讲解、功能分析以及参数调节方法的探…...
区块链-C++挖矿软件XMRIG源码分析
C++挖矿软件源码分析 3rdpartybackendgrgon2Obfusheader.hmain 程序 xmrig.cppxmrig命名空间process类Entry::IdApp类CoreControllerbasetoolkernelinterfacesDonateStrategy.cppdonate.h/2/dmiCmake 跨平台的自动化构建系统CMakeLists.txt.cmake 13个引入算力哈希率 HashrateE…...
C语言指针的介绍
零.导言 在日常生活中,我们常常在外出时居住酒店,细心的你一定能发现酒店不同的房间上有着不同的门牌号,上面写着像308,512之类的数字。当你定了酒店之后,你就会拿到一个写有门牌号的钥匙,凭着钥匙就能进入…...
八大排序算法——堆排序
目录 前言 一、向上调整算法建堆 二、向下调整算法建堆 三、堆排序 前言 堆排序是基于堆结构的一种排序思想,因此要为一个乱序的数组进行排序的前提是数组必须要是一个堆,所以要先对数组进行建堆操作 一、向上调整算法建堆 时间复杂度:O…...
U盘文件不翼而飞?这些数据恢复工具帮你找回!
U盘因其便携性是我们日常工作和生活中不可或缺的工具。不过有时候它也会出点小状况。如果你U盘里的数据突然不见了,不要着急,可以先试试这几款数据恢复工具! 福昕数据恢复 直达链接:www.pdf365.cn/foxit-restore/ 操作教程&…...
在Java中 try catch 会影响性能吗?
1、在Java中,异常处理确实会对性能产生影响,但在正常执行的代码路径中,即没有发生异常的情况下,try-catch块的性能影响是微不足道的 2、但是,如果出现异常被抛出时,Java虚拟机需要执行一些额外的操作来处理…...
Perplexity字体资源查询效率提升300%:基于Chrome DevTools Network + Font Inspector的6步诊断流程
更多请点击: https://intelliparadigm.com 第一章:Perplexity字体资源查询 Perplexity 是一款以语义理解与上下文感知见长的 AI 工具,其官方界面高度依赖定制化字体渲染以保障可读性与品牌一致性。在前端开发或设计系统集成过程中࿰…...
IPXWrapper终极指南:让90年代经典游戏在现代Windows上重生联机对战
IPXWrapper终极指南:让90年代经典游戏在现代Windows上重生联机对战 【免费下载链接】ipxwrapper 项目地址: https://gitcode.com/gh_mirrors/ip/ipxwrapper 对于许多怀旧游戏玩家来说,最大的遗憾莫过于那些经典的《星际争霸》、《帝国时代》、《…...
跨境物流监控进入“秒级预警”时代:实测实在Agent风险预警能力深度测评详解
摘要: 步入2026年,全球贸易数字化转型已从“信息化”跨越至“智能体化”阶段。跨境物流监控作为支撑全球供应链的核心枢纽,正面临红海危机常态化、信创国产化替代加速以及数据安全监管趋严的多重挑战。传统的人工监控与初级RPA方案在应对多变…...
地平线6地图有哪些 地平线6可以在手机上玩吗
很多玩家都在关注地平线6地图的细节,想知道这款即将上线的竞速大作究竟有哪些可探索的场景,而地平线6地图的丰富度也直接决定了游戏的可玩性。不少玩家习惯用手机碎片时间想体验游戏,却受设备限制无法解锁地平线6地图的全部风光,这…...
保姆级教程:把Windows系统装进固态U盘,用云固件打造随身移动办公神器
随身Windows系统:用固态U盘打造移动办公终极解决方案 咖啡馆的午后阳光斜照在键盘上,你从包里掏出一个名片大小的设备,插入陌生电脑的USB接口。30秒后,熟悉的桌面环境、未写完的文档、收藏夹里的书签全部跃然屏上——这不是科幻场…...
Fast-GitHub:智能网络优化架构解析与分布式加速方案
Fast-GitHub:智能网络优化架构解析与分布式加速方案 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 在国内开发者面临G…...
Geothermal Power Generation Global Market Trends 2026:地热发电为何正在成为新一轮能源工程竞争核心
观点|地热发电的竞争逻辑已经发生变化过去很多人认为地热发电属于区域性能源项目。但现在,行业真正变化的是:地热正在从“资源开发工程”,转向“稳定电力基础设施工程”。相比波动性较强的风电与光伏,地热发电最大的优…...
为什么你的Perplexity症状查询总返回模糊答案?——解析LLM医学知识蒸馏偏差、实体链接断层与实时性衰减问题
更多请点击: https://kaifayun.com 第一章:Perplexity症状查询功能的临床价值与典型失效场景 Perplexity症状查询功能在临床决策支持系统中承担着语义级症状归一化与鉴别诊断初筛的关键角色。它通过将患者自然语言描述(如“饭后右上腹闷胀、…...
RH850 F1的FLASH自编程实战:如何在程序运行时安全更新数据闪存?
RH850 F1 FLASH自编程实战:如何在运行时安全更新数据闪存? 当车载ECU以120km/h行驶时,突然需要更新发动机标定参数——这个看似矛盾的场景,正是汽车电子工程师每天面对的挑战。RH850 F1系列微控制器独有的**后台操作(BGO)**功能&a…...
雀巢冰淇淋在华投资的首家冰淇淋工厂迎来成立40周年 | 美通社头条
、美通社消息:近日,雀巢冰淇淋华南生产基地 —— 广州冷冻食品有限公司迎来成立40周年。该工厂是雀巢冰淇淋在华投资的首家冰淇淋工厂,陪伴一代代华南消费者成长的经典甜筒、飞鱼脆皮等产品皆出自广冻厂。1986年,在改革开放的时代…...
