I. All are found through the mdns Protocol
Ii. airplay Protocol Summary
/Reverse
Negotiation request
/Scrub
POST method: seek request
Get is used to obtain the playback position
/Volume
Set volume: 0.000000 to mute, 1.000000 to maximum
/Play
Playback request: Carry the playback Link
The local file is played as HTTP, and the network file is played as m3u8.
/Rate
Playback and pause: 0.000000 is paused, and 1.000000 is paused.
/Stop
Stop playing
/Photo
Push image: Send the actual image in the HTTP body
/Playback-Info
Obtain the playback status, including the total duration, buffer duration, playback position, and player status (loading, playing, paused, and stop ).
/Server-Info
Obtain server information: Mainly MAC address information
Iii. airtunes handling process
1. The RSA key is used to transmit the audio stream encryption key:
Sender: RSA public key to encrypt the AES key and send it over HTTP
Play end: RSA private key to decrypt the AES key, save
2. play audio streams:
Sender: AES encrypted audio streams, RTSP push
Playing end: AES Key decryption audio stream, playing
3. RSA private key:
# Defineairport_private_key \
"----- Begin rs1_vate key ----- \ n "\
"Miiepqibaakcaqea59de8qlieitsh1wgjrcfrkj6euwqi + bglox1hl3u3ghc/j0qg90u3sg/1cut \ n "\
"Wc5voyvfdmfi6osfxi5elabwjmt2dkhzbjka3k9ok + 8t9ucrqmd6dzhj2ycclldrkskv6kdqnw4u \ n "\
"Wpdpomxzic/amj3z/luvx1g7wshcawkf1zns1elvqr + boejxuboitnz/bdzphrtozz0dew0uowxf \ n "\
"// + SG + nck3eqjvxqcaj/vehkivd2m + 5ql71yjq + 87x6ov3eayvt3zwzyd6z5vytcrtij2vz9zmni/\ n "\
"Uaahqn9jdsbwluepvviynhimnvvyfzecxg/idtq + x4irdixnv5heewidaqabaoibaqdl8axy9xfw \ n "\
"Blmkzkeiqoswf0psmvrpzh9ksnwlgh + qzlv1_d8swygn7u1507hvhf5n3drjovu3o14ndy4tfqaa \ n "\
"Bytes \ n "\
"Bytes \ n "\
"Lpphr0o/knpqtzi3eguhe0twuem/eysdyzmyvx/ypwkzwtyl3sr5k0o9rkqltvlzfaqdbxburciz \ n "\
"Aaa/role \ n "\
"A39gls99zeerhldrwj8rddvirvj5skop9zfvlyahs0xh92ji1e7v/ysnkbfsmrpkk5kskprnjndm \ n "\
"Opdevwnvkgj5jxfungxkolmug9i53b4ymvdtcriipmq ++ n2ildaraogbao9v // mu8evkqaoanf0z \ n "\
"Omjw8cn4xwwa2cseihkd9affkftuv8oyldcg3zaf0vrhrrtkrfa7ef + aub69dnggq4mhqaybp7l + \ n "\
"K5dkzjrkuo0r + r0yby9pzd1 +/g9dvt91d6lqnepue/yy2pp5cnofmjedplhmopfdvgqdzdfxu8hl \ n "\
"Aogbandrr7xajbqbjhvwizq4to9pb4bneqdndk5qe7ft3 +/h1njgac0/rxe0qb7q5ysgnscb3dva \ n "\
"Cjyrm9sj7oklgt0fmsdjd5kg0xpipavnwgpxxh5mdjg09kheh0kxo + qa6vifbi21y340nonnefdf \ n "\
"54px4zgs/xac1uk + plkbb + zraogaf0ay3h3qks2lmei4bzefo1_895pdak3tfbvmd7fv0zhov \ n "\
"17fegfpmwoii8misym9zft2z0s5ro3s5rkt + nvladfc/pypkztlalpgswomsnyjcb9hnmlmhkgzc \ n "\
"1jnlyt4iyuyx6pczbmcd8bd0iwy/fzcgndaumbx9 + xdvra0cgyeake7piple71qvfjqgoa9em0gi \ n "\
"Laue4pu13akijnfft7hijbk + 5kyb3tyszvoydnb3hokvink7vxbkuu4isgxb2bb3hcyzqmgsz1qj \ n "\
"Bandwidth = \ n "\
"----- End rs1_vate key -----"