Xiaomi рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдЧреЗрдЯрд╡реЗ рдХреЛ рдПрдХ рдХреЙрд▓рдо рдореЗрдВ рдмрджрд▓реЗрдВ

рдирдорд╕реНрдХрд╛рд░, рд╣рд╛рдмрд░рд╛ рдЧрд┐рдХрдЯрдпрдореНрд╕-рд░реАрдбрд░! рдЖрдЬ рдореИрдВ рдЖрдкрдХреЛ рд╕рд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ рдмреЗрдХрд╛рд░ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реЛред рд╣рдо рдЬрд╝рд┐рдЧрдмреА рдЧреЗрдЯрд╡реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдХреБрдЦреНрдпрд╛рдд Xiaomi рдХрдВрдкрдиреА рдФрд░ рдЙрд╕рдХреЗ рдЙрддреНрдкрд╛рдж рд╕реЗ рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рдШрд░ рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред

рдЬрд╝рд┐рдпрд╛рдУрдореА рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдШрдЯрдХреЛрдВ рдХреЗ рдорд╛рд▓рд┐рдХреЛрдВ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрди рд▓реЛрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИрдВ рдЬреЛ рдЬрд╝реАрдЧреНрдмреА рдпрд╛ рдмреНрд▓реВрдЯреВрде рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдо zigbee рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 2 рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рд▓реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╡рд╣рд╛рдБ рдерд╛ рдХрд┐ рд░реЗрдбрд┐рдпреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рджрд┐рдЦрд╛рдИ рджреА, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдЪреАрдиреА рдЗрдВрдЯрд░рдиреЗрдЯ рд░реЗрдбрд┐рдпреЛ рд╕реНрдЯреЗрд╢рдиреЛрдВ рдХреЛ рдЦреЗрд▓ рд╕рдХрддреА рд╣реИред


рдмреЗрд╢рдХ, рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдорджрдж рд╕реЗ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рдЕрдиреНрдп рд░реЗрдбрд┐рдпреЛ рд╕реНрдЯреЗрд╢рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рджреВрд╕рд░реЗ рд░рд╛рд╕реНрддреЗ рдкрд░ рдЬрд╛рдПрдВрдЧреЗ рдФрд░ рдЧреЗрдЯрд╡реЗ рд╕реЗ рдПрдХ рд╡рд╛рдпрд░рд▓реЗрд╕ рд╕реНрдкреАрдХрд░ рдмрдирд╛рдПрдВрдЧреЗред

рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП?


рдЖрдкрдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рдлрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП:

  • рджрд░рдЕрд╕рд▓, ZigBee рдЧреЗрдЯрд╡реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрдо рд╕реЗ рдХрдо 2 рд╣реИ (рдЗрд╕рдореЗрдВ рдПрдХ рд░реЗрдбрд┐рдпреЛ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛)
  • рдХреЛрдИ рднреА рд╡реЗрдм рд╕рд░реНрд╡рд░
  • рдПрдХ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдЬрд┐рд╕ рдкрд░ рдЪрдпрдирд┐рдд рджреЗрд╢ рдЪрд╛рдЗрдирд╛ рдореЗрдирд▓реИрдВрдб рдХреЗ рд╕рд╛рде рдПрдХ рд░реВрдЯ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдорд┐рд╣реЛрдо рд╣реИ

рд╣рдо рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ?


рд╣рдорд╛рд░реЗ рдЧреЗрдЯрд╡реЗ рдХреЗ рдмрд╛рд╣рд░ рдПрдХ рд╡рд╛рдпрд░рд▓реЗрд╕ рд╕реНрдкреАрдХрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрдВрдЯрд░рдиреЗрдЯ рд░реЗрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рд╣реЛрдиреЗ рдХрд╛ рджрд┐рдЦрд╛рд╡рд╛ рдХрд░рдиреЗ рдФрд░ рдЧреЗрдЯрд╡реЗ рдХреЛ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕реНрдЯреЗрд╢рдиреЛрдВ рдХреА рд╕реВрдЪреА рдкрд░ рджрд╕реНрддрдХ рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЪреАрдиреА рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред

рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдлреЛрди рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЪреАрдиреА рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ, рдЖрдк рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╕реВрдБрдШ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрдХреЛ рдЗрд╕ рдмрд╡рд╛рд╕реАрд░ рд╕реЗ рдмрдЪрд╛рдКрдВрдЧрд╛ :) рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдХреНрд╖рд┐рддрд┐рдЬ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП, рд╣рдо рддреАрди рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рд░реБрдЪрд┐ рд▓реЗрдВрдЧреЗ рдФрд░ рддрджрдиреБрд╕рд╛рд░, рдЪреАрдиреА рдПрдкреАрдЖрдИ рдХреЗ рдЬрд╡рд╛рдм, рдЬреЛ api.ximalaya.com рдкрд░ рд░рд╣рддреЗ рд╣реИрдВ:

  • / рдУрдкреЗрдирдкреА-рдЧреЗрдЯрд╡реЗ-рдРрдк / рд▓рд╛рдЗрд╡ / рд░реЗрдбрд┐рдпреЛ
  • / рдУрдкреЗрдирдкреА-рдЧреЗрдЯрд╡реЗ-рдРрдк / рд▓рд╛рдЗрд╡ / get_radios_by_ids
  • / рдУрдкреЗрдирдкреА-рдЧреЗрдЯрд╡реЗ-рдРрдк / рд╕рд░реНрдЪ / рд░реЗрдбрд┐рдпреЛ

рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдУрдкрд╛рдкреА рд╢рдмреНрдж рдЦреБрд▓реЗ рдореЗрдВ рдХреБрдЫ рд╕рдВрдХреЗрдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рдорд┐рд▓рд╛ред рдЕрдиреБрд░реЛрдз рдЙрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЖрддрд╛ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдиреНрд╣реЗрдВ рддреНрдпрд╛рдЧ рджреЗрддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рд░реВрдк рдореЗрдВ nginx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдпрд╣рд╛рдБ рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ:

server { listen *:80; server_name api.io.mi.com ximalaya.com www.ximalaya.com api.ximalaya.com mobile.ximalaya.com open.ximalaya.com ximiraga.ru www.ximiraga.ru; root /opt/xiaomiradio/www; index index.php index.html index.htm; access_log /var/log/nginx/radio_access.log; error_log /var/log/nginx/radio_error.log; location @ximalaya { proxy_pass http://api.ximalaya.com; } } 

рдЕрдкрдиреЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреА рдЬрдбрд╝ рдореЗрдВ рд╕рдорд╛рди рдкрджрд╛рдиреБрдХреНрд░рдо рдмрдирд╛рдПрдБред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╡реЗрдм рд╕рд░реНрд╡рд░ рд░реВрдЯ рдореЗрдВ рд░реЗрдбрд┐рдпреЛ рдФрд░ hls рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБред рдЗрди рд░рд╛рд╕реНрддреЛрдВ рдкрд░ рд╕рднреА рдХреЙрд▓реЛрдВ рдХреЛ рдПрдХ рд╣реА JSON рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рд╕реНрдЯреЗрд╢рдиреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗред

рдпрд╣рд╛рдБ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рд╣реИрдВ:

 { "total_page":1, "total_count":1, "current_page":0, "radios":[ { "id":527782023, "kind":"radio", "program_name":"AirSound1", "radio_name":"AirSound1", "radio_desc":"", "schedule_id":0, "support_bitrates":[ 64 ], "rate24_aac_url":"", "rate64_aac_url":"http://<    >/hls/live1.m3u8", "rate24_ts_url":"", "rate64_ts_url":"", "radio_play_count":1, "cover_url_small":"http://<    >/radio/527782023/cover_small.png", "cover_url_large":"http://<    >/radio/527782023/cover_big.png", "updated_at":0, "created_at":0 } ] } 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рд╣рдо рд░реЗрдбрд┐рдпреЛ рдХреА рдПрдХ рд╕рд░рдгреА рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдзрд╛рд░рд╛ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реИред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдИ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рд╣реИрдВ - рддреЛ рдЖрдк рдХрдИ рдЪреИрдирд▓ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдиреЛрдЯ - рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рдкрддреЗ рдХреЛ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рд╕реЗ рд╕реБрд▓рдн рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП!

рдЖрдкрдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрдорд╛рд░реНрдЯрдлрд╝реЛрди рдкрд░ рд╣реЛрд╕реНрдЯ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреЗ рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рдкрддреЗ рд╕реЗ рдореЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП api.ximalaya.com рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЕрдм рдзрд╛рд░рд╛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдореИрдВрдиреЗ рдкреАрд╕реА рд╕реЗ рдЕрдкрдиреЗ рд╕рд╛рдЙрдВрдб рдХрд╛рд░реНрдб рд╕реЗ рд╕рдм рдХреБрдЫ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬрд┐рд╕ рдкрд░ рд╡реЗрдм рд╕рд░реНрд╡рд░ рддреИрдирд╛рдд рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рд╣рдо ffmpeg рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:

 #!/bin/bash ffmpeg -f alsa -i hw:Loopback,1,0 -c:a libfdk_aac -b:a 64k -f ssegment -segment_list /opt/xiaomiradio/hls/live1.m3u8 -segment_list_flags +live -segment_time 1 -segment_list_size 1 -segment_wrap 5 -segment_list_entry_prefix http://<    >/hls/ /opt/xiaomiradio/hls/64%03d.aac 

рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рд░рд╛рд╕реНрддреЛрдВ рдФрд░ рдкрддреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ - рдЖрдкрдХрд╛ рд╡рд┐рдХрд▓реНрдкред

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдпрд╣ рд╕рдм рд╕рдлрд▓ рдХрд╛рдо рдХреЗ рд▓рд┐рдП рд╣реИ - ffmpeg рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдПрдВ, рдпрд╣ рдЖрдкрдХреЗ рд╕рд╛рдЙрдВрдб рдХрд╛рд░реНрдб рд╕реЗ рдзреНрд╡рдирд┐ рдХреЗ рд╕рд╛рде рдЦрдВрдб рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрдЧрд╛, рдлреЛрди рдкрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ рдФрд░ рдЕрдкрдиреЗ рд╕реНрдЯреЗрд╢рди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ - рдПрдХ рдпрд╛ рджреЛ рдХреЗ рдмрд╛рдж, рдкреАрд╕реА рд╕реЗ рдзреНрд╡рдирд┐ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

Source: https://habr.com/ru/post/hi411003/


All Articles