在类中存储图像/声音的最佳方式?

Posted

技术标签:

【中文标题】在类中存储图像/声音的最佳方式?【英文标题】:The best way of storing an image/sound inside a class? 【发布时间】:2008-10-15 11:26:59 【问题描述】:

我正在开发一种应用程序实例之间的交换格式,以便用户可以将信息保存到文件并在以后恢复它。整个“交换格式”是一个被序列化并写入磁盘的类。

您建议如何在该类中存储图形/声音信息?我想避免只将文件放入 .jar 中。

【问题讨论】:

【参考方案1】:

您可以将资源作为 byte[] 数组存储在类中。使用 ByteArrayInputStream 和 ByteArrayOutputStream,您可以将数组包装为流,并使用它们来存储和检索资源。

【讨论】:

【参考方案2】:

在类中以任何您喜欢的方式存储数据,但为数据实现自定义序列化。见Serializable。

【讨论】:

【参考方案3】:

**我**

您的案件的更多细节如何? “最佳”方法通常取决于特定的应用程序/用途。图像/声音是否来自文件?来自流?该类的每个实例是否都应存储单独的图像?还是可以在不同实例之间共享图像?

gsmd

图像来自文件,声音来自 从溪流中;实际上有一个 Set 其中一些可能有 附上图片;图像不能 共享


你尝试过哪些方法? 我想使用 Serializable 接口是要走的路。这是关于该主题的twoarticles。

基本上,

    在您的类中实现 Serializable 接口 将不应保存在文件中的成员标记为瞬态(包含文件句柄、套接字连接等上下文数据的成员)。

    您必须自定义图像和声音类如何使用写入数据,但要实现:

    private void writeObject(ObjectOutputStream out) 抛出 IOException;

    private void readObject(ObjectInputStream in) 抛出 IOException, ClassNotFoundException;

【讨论】:

图像来自文件,声音来自流;实际上有一组项目,其中一些可能附有图像;无法共享图片。

以上是关于在类中存储图像/声音的最佳方式?的主要内容,如果未能解决你的问题,请参考以下文章

使用 C# 播放 MIDI 声音的最佳方式

c# 在构建中有声音文件

CCSprite 带有图像文件和声音文件

在类中访问向量

为啥手机视频只有声音没有画面

微信视频没有画面只有声音怎么回事