我正在使用此文档 https://nto.github.io/AirPlay.html#screenmirroring 创建一个 airplay 服务器

我的代码如下

const airplay = require('airplay-server');
const macaddress = require('macaddress');
const express = require('express');

const http = express()

macaddress.one((err, mac) => {
  airplayServer = airplay({
    name: 'test',
    txt: {
      deviceid: mac,
      features: '0x5A7FFFF7',
      flags: '0x44',
      model: 'AppleTV3,2',
      srcvers: '220.68',
      vv: 2
    }
  })
  airplayServer.listen(7000);

  airplayServer.on('request', function (req, res) {
    console.log('Request received');
    console.log(req.method, req.url)
    console.log(req.headers)
  })

  airplayServer.on('listening', function () {
    console.log('Listen 7000');
  })
})

http.get('/stream.xml', (req, res) => {
  res.header("Content-Type", "text/x-apple-plist+xml");
  res.send('<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>height</key><integer>720</integer><key>overscanned</key><true/><key>refreshRate</key><real>0.016666666666666666</real><key>version</key><string>130.14</string><key>width</key><integer>1280</integer></dict></plist>')
});

http.post('/stream', ((req, res) => {
  console.log('STREAM !!!!!');
  res.end(200);
}))

http.listen(7100)

我在 7000 上有一个服务器,在 7100 上有另一个服务器来使用我手机的屏幕镜像功能

当我在 iPhone 上进行屏幕镜像时会出现 test 设备,但我收到了错误消息 Unable to connect to "test"
该文档很旧,可能已经过时。

我没有收到任何邮件或请求

最佳答案

我试过你的代码,我遇到了同样的问题。我认为您使用的库(和文档)太旧了,无法 catch AirPlay 协议(protocol)。在过去四年中,协议(protocol)以及您使用的 airplay-server 库可能发生了变化。我强烈建议使用更新的框架,我一直在这里搜索: https://github.com/topics/airplay-server 。祝你好运!

关于ios - 创建一个airplay服务器nodejs,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57481796/

10-13 04:29