Netstream - 如何使用RTMFP发布mp3文件

nav*_*eet 1 apache-flex flash actionscript-3 netstream rtmfp

我想从其中一个同伴发布一个mp3文件,并从其他同行播放,与RTMFP聊天应用非常相似.

从我理解到现在:

  1. netstream.publish用于将流发布到RTMFP网络连接以及netstream.play从其他对等方播放流.
  2. 流媒体麦克风和摄像头捕获的步骤是:
    netstream.attachCamera(cam);
    netstream.attachAudio(MIC);
    netstream.publish( '视频');
  3. 但是,我没有看到使用Netstream发布(流)mp3文件的方法.请注意,使用Netstream是必不可少的,因为我想将音频"发布"给听众.

如果我上面错了,请纠正我.理想情况下,我想要实现的目标应该很容易实现,但我找不到任何指针.是否可以使用ByteArray.只要适用于RTMFP,任何其他流媒体策略都会受到欢迎.代码示例的链接也很棒.

小智 5

你偶然发现了一个奇怪的NetStream怪癖.它可以从麦克风发出声音,但不能从任意声源发出声音.有一些解决方法,有些比其他更复杂.

  • 通过虚拟麦克风流式传输.最简单的解决方法,以及最好的(IMO),如果您的项目允许您使用它.你只需要安装一个虚拟麦克风/摄像头软件(例如:ManyCam),并使用它通过虚拟麦克风流的MP3文件(S).完成后,您只需将此麦克风绑定到AS3应用程序即可.遗憾的是,它不适用于您的项目,因为您无法合理地要求发布对等方安装虚拟麦克风.

  • 流媒体使用Sound.extract(),NetStream.send()SampleDataEvent.SAMPLE_DATA.您可能知道,NetStream.send()可以用来向同行发送消息.问题是,这些消息是序列化的,可以ByteArray.因此,您可以发送音频数据样本NetStream.send().发布小便应用程序可以获取数据样本Sound.extract(),并且接收应用程序可以通过该SAMPLE_DATA事件来播放它们.其中一个问题是要知道何时应该发送新样本.要对此进行管理,建议您还要SAMPLE_DATA在发布应用中使用,并在每次SAMPLE_DATA事件发生时发送新数据.使用这种方法的主要问题是,既然你不使用RTMP的标准方式传输音频,它需要一个自定义应用程序的接收器进行播放.鉴于你对你的项目的看法,它应该不是问题.

  • 使用重现RTMFP协议Socket.这将是漫长的,非常复杂的,并且容易出错.除非作为学习经历,否则我绝不会建议这样做.您需要阅读,理解并实施大多数RTMFP规范.