온라인 오디오 (라디오 방송국)를 스트리밍 할 수있는 작은 웹 사이트를 작성하려고하는데 다음과 같은 질문이 있습니다. 1. 데이터베이스에 모든 음악 파일을 색인화해야합니까? 임의로 파일 시스템에서 파일을 선택하고 재생합니다. 2. 아약스를 사용하여 새 노래를로드해야합니까? (마지막으로 작업을 마친 직후, 또는 파일 링크가있는 서버에서 응답을 받기 전에 몇 초가 걸릴 수 있습니까?) 3. 아약스를 사용하거나 목록을 작성하는 것이 가치가 있습니까? 풀 타임을 플레이하고 다시 시작할 수 있습니까?ruby on rails를 사용하는 온라인 오디오 스트림
답변
나는 당신이 잘못된 질문을하고 있다고 생각합니다.
- 브라우저에서 오디오를 재생하는 방법 (어떤 플레이어를 사용하게됩니까?)을 고려해야합니다.
- 파일을 클라이언트에 전달하기 위해 Ruby on Rails가 필요하지 않습니다. 웹 서버 (Apache 또는 Nginx)에서 직접 요청할 수 있습니다.
- 레일즈는 플레이어와 함께 웹 사이트를 렌더링 한 다음 오디오를 재생할 때만 필요합니다. 어떤 플레이어를 사용하고 있는지에 따라 자바 스크립트를 통해 서버에서 다음 곡을 요청하거나 정적 재생 목록을 클라이언트에 쓰고 재생할 수 있습니다. 내가 @Tigraine와 aggree 스트리밍에 관해서는 는
는 지금,
싱글 곡 플레이 :
1 당신이 행동 아약스 호출 후 개별 노래를 재생하고 싶은 경우는 JSON 응답에서 키 값 쌍을 반환 요청한 노래의 오디오 URL이 포함되어 있습니다.
재생 목록 :
2. 오디오 URL이 포함 된 배열을 재생 목록에 추가 한 배열과 동일한 배열로 반환해야합니다.
는 그런 다음 자바 스크립트에서 변수
var에 current_song 우리가 일반적으로 노래를 완료 한 다음 노래는 같은 노래 카운터를 증가 할 수 있습니다 완료 할 때 감지하는 방법이 JS 오디오 플레이어에서
을 total_song
VAR를 선언
current_song + = 0
샘플 코드는 다음과 같습니다 : 여기
을 당신이 다른 선수 최고의 완벽하게 사용자 정의 플레이어 중 하나를 사용할 수 있습니다 Jplayer을 사용하고
카운터가 하나 재설정 종료에 도달
.
var current_song = 0;
var total_songs;
var song_id_array;
$.ajax({
url:"<%=url_for :controller => 'cont_x',:action => 'song_in_playlist'%>",
data:'playlist_id=' + encodeURIComponent(playlist_id),
cache:false,
success:function (data) {
song_id_array = data.array; //data.array variable contain's the audio URL's array of songs inside selected playlist which is returned by the action //
total_songs = song_id_array.length;
}
})
current_song = 0;
play_right_song(current_song);
}
function play_right_song(current_song) {
$("#jquery_jplayer_1").jPlayer("destroy");
var audio_url_inside = song_id_array[current_song];
$('#jquery_jplayer_1').jPlayer({
ready:function (event) {
$(this).jPlayer("setMedia", {
mp3:audio_url_inside
}).jPlayer("play");
},
ended:function() { // The $.jPlayer.event.ended event
current_song += 1;
if (current_song >= total_songs) {
current_song = 0;
}
play_right_song(current_song);
},
swfPath:"<%= asset_path('Jplayer.swf')%>",
supplied:"mp3"
});
}
재생 목록에서 다음 및 이전 노래를 처리하려면 코드를 요청하십시오. 나는 대답을 업데이트 할 것이다.
답변 해 주셔서 감사합니다. 하지만 나는 라디오처럼 음악을 방송하기 위해 스트리밍 서버가 필요하다는 것을 알았다. – Avdept
네가 맞습니다. –
무엇보다도 나는 간단한 js 플레이어 + html5 오디오 API를 사용할 것입니다. 하지만 웹 서버를 사용하여 파일을 요청하는 것에 대해 정확히 이해했는지 자세한 내용을 설명하거나 여기에서 내가 읽을 수있는 부분을 가르쳐 주시겠습니까? PHP를 사용하여 라디오 스트리밍을 만드는 방법에 대한 정보를 찾았으며보기에 대한 응답이없는 코드가 많이 있습니다. 또한 파일에서 id3 태그를 읽을 수있는 루비 태그 젬을 사용하여 현재 노래 이름을 표시하고 싶습니다. – Avdept
음 .. Ruby on Rails는 HTML을 클라이언트에 렌더링하는 데 중점을 둔 웹 프레임 워크입니다. Apache 나 NginX와 같은 웹 서버의 주요 목적은 서버의 파일 시스템에서 클라이언트로 파일을 제공하는 것입니다. 그래서 파일을 Rails 응용 프로그램의 공용 폴더에 넣으면 아무 것도하지 않고도 클라이언트에서 액세스 할 수 있습니다. – Tigraine
잘 모르겠지만 호스팅 할 때 거대한 공간이 필요하기 때문에 저는 그렇게 생각합니다.Dropbox 또는 g-drive \ skydrive와 같은 일부 클라우드 기반 시스템을 사용하여 오디오 파일을 호스트 한 다음 RoR을 사용하여 사용할 수 있습니까? – Avdept