2013-03-14 2 views
3

Я работаю над приложением asp.net, и я делаю вызов действия контроллера из моего представления. эта точка зрения должна вернуть mp3 в вызываемую функцию. Какой будет тип Actionresult. Функция, которая называется, возвращает ответ mp3. Как сохранить mp3-ответ в памяти, возвращенный api в память и вернуться к просмотру?как передать mp3-поток/ответ на просмотр с контроллера?

вот мой контроллер код метода:

public ActionResult getrecording() 
     { 
      byte[] file = new byte[100]; // Convert.ToByte("https://api.abc.com/api/v2/GetRecording?access_token=dfsdfsdfsdfsdfsdfsdfsdfsfsfdsf"); 


      //return (new FileStreamResult(fileStream, "audio/mpeg")); 
      ////return (new FileContentResult(data, "audio/mpeg")); 
     } 

и вот код зрения

$("#jquery_jplayer_1").jPlayer({ 
       ready: function (event) { 
        $(this).jPlayer("setMedia", { 
          mp3: "/recording/getrecording" 
        }); 
       }, 
       swfPath: "../../Content/JPlayer/js", 
       supplied: "mp3", 
       wmode: "window", 
       size: 100, 
       duration: "#duration" 
      }); 

ответ

4

Вы можете использовать WebClient для загрузки удаленного файла, а затем поток его в ответ:

public ActionResult getrecording() 
{ 
    var client = new WebClient(); 
    var stream = client.OpenRead("https://api.abc.com/api/v2/GetRecording?access_token=dfsdfsdfsdfsdfsdfsdfsdfsfsfdsf"); 
    return File(stream, "audio/mpeg"); 
} 

и если вы хотите, чтобы у клиента было предложено загрузить файл, просто добавьте имя:

public ActionResult getrecording() 
{ 
    var client = new WebClient(); 
    var stream = client.OpenRead("https://api.abc.com/api/v2/GetRecording?access_token=dfsdfsdfsdfsdfsdfsdfsdfsfsfdsf"); 
    return File(stream, "audio/mpeg", "foo.mp3"); 
} 
+0

Я не хочу его downlaod. Я хочу передать mp3-ответ jplayer http://jplayer.org/latest/developer-guide/#jPlayer-option-size – DotnetSparrow

+0

в моем jplayer-коде, который я добавил в вопрос, если мне это нравится: $ (this) .jPlayer ("setMedia", { mp3: "https://api.abc.com/api/v2/GetRecording?access_token=dfsdfsdfsdfsdfsdfsdfsdfsfsfdsf" }); Он работает, но мне нужно передать ключ доступа и токены, которые небезопасны, поскольку пользователь может их видеть. – DotnetSparrow

+0

Вы должны указать URL-адрес jPlayer для действия вашего контроллера: 'mp3: '/ somecontroller/getrecording';', а не удаленной службе. –

Смежные вопросы