【问题标题】:User-friendly approach for network streaming, playing and seeking of audio files in Mac OS X 10.5在 Mac OS X 10.5 中用于网络流式传输、播放和查找音频文件的用户友好方法
【发布时间】:2024-04-18 14:30:01
【问题描述】:

请建议结合使用服务器和客户端技术、工具和框架来实施满足以下要求的解决方案?

  • 网络中的文件服务器有一个巨大的mp3/aac/aiff/wav音乐文件库
  • 桌面 cocoa 应用程序使用 URL 访问音频文件:rtmp、http、rtsp+rtp、ftp — 如何选择?
  • 音频内容应该是流式传输并通过seeking播放(这很重要),而不需要下载整个文件:QuckTime、AudioQueue、AudioFile、AudioStream、CFHTTP、All其中?——如何开发客户?

    经过扎实的研究,我最终得到了无数的选项和文章。但看起来其中一半已经过时(2001-2005),另一半是关于 Mac OS X 和 iPhone OS 的通用代码(纯 C)。

    但这里的主要目标是为 Mac OS 10.5 编写桌面音乐播放器。
    我不敢相信所有这些原始的 C 编码都是必需的。
    没有包装?没有方便的图书馆?没有组件?

    P。 S. Research 得出以下组合:qt_tools 用于提示 + DSS 用于 RTSP 流媒体 + QTMovie 用于回放 + setCurrentTime: 用于搜索。此选择需要双倍空间来存储每个音乐文件的提示 .MOV 版本,但仍然有效。

  • 【问题讨论】:

      标签: cocoa macos audio networking streaming


      【解决方案1】:

      我不确定,但我相信您可以使用 [QTMovie movieWithURL:url error:err] 从 URL 流式传输电影,然后将其传递给 QTMovieView 对象。 QuickTime 将音频视为电影,因此它可以工作。或者它可能会尝试加载整个文件。

      【讨论】:

      • 更接近,但我们需要一个超轻量级的客户端(让我们想象一个人在听有声读物)。所以下载整个音频文件不是一个案例。非常感谢有关服务器端支持的任何想法。 Mac OS X Server 看起来很有前途,但它相当昂贵。我们必须确保它允许流式传输纯音频文件。非常感谢。
      • 查看developer.apple.com/opensource/server/streaming/index.html。它是免费的,我认为你可以让它在 Linux 下运行。
      • 是的,我们完全选择了这个服务器解决方案来传输音乐曲目。如果不将音频包装到暗示的电影中,很可能无法流式传输和搜索音频。
      【解决方案2】:

      【讨论】:

      • 当然我做到了:) 而且这种方法似乎需要来自服务器端的提示轨道的后端支持。但正如我在问题中提到的,我们有大约 1 TB (!) 的内容。将每一首曲目都处理成 .MOV 文件是不可能的。还是我错过了什么?我们需要一种“纯”音频流。谢谢。
      【解决方案3】:

      您是否将 VLC 视为流式解决方案?

      【讨论】:

      • 感谢您提供如此有用的解决方案。不幸的是,在没有将 MP3 文件解压缩为视频格式之前,似乎无法流式传输 MP3 文件。在这种情况下,我们仍然需要在流式传输之前转换所有内容。