הזרמת אודיו מתוך שרת אחר
-
יש לי קבצים שיושבים בשרת של ימות המשיח, וברצוני לתת ללקוחותי גישה לשמיעת הקבצים מתוך האתר שלי (PHP/YII2).
אני יכול לקבל את הקבצים בAPI מימות המשיח (זה לינק שמביא הורדת קובץ), אך לכן אני חייב להוסיף בבקשה את מספר וסיסמת המערכת או טוקן.
יש לי לקוחות שאין להם צורך בגישה למערכת הטלפונית עצמה, ולכן אני מעדיף לא להשים שממשק עצמו את פרטי הגישה למערכת, ולכן לא אוכל להזרים ישירות באתר שלי בצד הלקוח מול הקובץ בימות המשיח.
אלא ברצוני ליצור כעין פרוקסי אצלי בשרת שמקבל את הבקשה להשמיע את קובץ פלוני, והוא מתחבר לימות המשיח ומזרים את התוכן שמקבל מימות המשיח (מזמרים ישירות בלי להוריד אלי לשרת, לחכות לסיום ההורדה ואז לשלוח לבקשה, אלא יזירם תוך כדי שהוא שואב משם)
אשמח לדעת איך ניתן לעשות את זה -
-
אוקיי, שומע.
אם עושים echo זה באמת פולט את הכל בצ'אנקים?
בכ"א צריך לעשות איזה פקודה שתדחוף את הכל ללקוח, הגם שהטעינה לא הסתיימה.
לא יודע אם חייבים, אבל קראתי שלפעמים הוא אוגר את הכל עד שיסתיים.באמת אם תעשה אקו + סליפ + אקו 2, תקבל את הכל במרוכז.
את זה ניסיתי פעם. -
@dovid אמר בהזרמת אודיו מתוך שרת אחר:
בדוק פה: https://www.geeksforgeeks.org/download-file-from-url-using-php/
הדוגמא כאן עובדת בסדר גמור
$url = 'https://www.call2all.co.il/ym/api/DownloadFile?&token=vPEPEEV&path=ivr2:/M0000.wav'; // $url = $_GET['file']; $path_parts = pathinfo($url); $ext = $path_parts['extension']; $filename = $path_parts['filename']; header("Content-type: application/$ext"); header("Content-Disposition: attachment; filename=$filename.$ext"); echo file_get_contents($url);
-
@WWW אמר בהזרמת אודיו מתוך שרת אחר:
@dovid אמר בהזרמת אודיו מתוך שרת אחר:
אבל יש פקודה אחרת file_put_contents
ואיך אתה שולח את זה לקליינט?
file_put_contents(fopen("php://output", "w"), fopen("http://someurl/file.zip", 'r'));
או אולי להשתמש בזה במקום file_put_contents
-
זה עשה את העבודה:
<?php $url = 'https://www.call2all.co.il/ym/api/DownloadFile?&token=oKGdVae4&path=ivr2:/M0000.wav'; //$url = $_GET['file']; $path_parts = pathinfo($url); $ext = $path_parts['extension']; $filename = $path_parts['filename']; header("Content-type: application/$ext"); header("Content-Disposition: attachment; filename=$filename.$ext"); $stream = fopen('php://output', 'w'); $ch = curl_init($url); curl_setopt($ch, CURLOPT_READFUNCTION, function($ch, $fd, $length) use ($stream) { return fwrite($stream, fread($fd, $length)); }); curl_exec($ch); curl_close($ch); exit(); //echo file_get_contents($url); //file_put_contents(fopen("php://output", "w"), fopen($url, 'r'));
רק אצטרך לראות בהמשך שזה משתלב בJS בדפדפן להשמעת הקבצים