2012-11-20 3 views
2

Amazon S3에서 안드로이드 스트리밍 노래로 미디어 플레이어를 만들려고합니다. 나는 내 양동이에있는 노래를 공개했고 bowser와 함께 스트리밍 할 때 잘 동작합니다. 그러나 그것이 안드로이드에 올 때, 그것은 저에게 예외를 던졌습니다. 여기FileNotFoundException Amazon S3

11-20 01:28:37.720: W/System.err(736): java.io.FileNotFoundException: /https:/s3.amazonaws.com/soul-media/mp3s/1234.mp3: open failed: ENOENT (No such file or directory) 

그것은 4.1 안드로이드와 함께 일하지만이 문제가 될 수 있습니다, 2.2 작동하지 않았다 플레이어

MediaPlayer mid= new MediaPlayer(); 
    try { 
     FileInputStream fid= new FileInputStream("https://s3.amazonaws.com/soul-media/mp3s/1234.mp3"); 
     mid.setDataSource(fid.getFD()); 
     mid.prepare(); 
     mid.start(); 
    } catch (IllegalArgumentException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IllegalStateException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

내 코드? Amazon S3 이외의 URL을 사용해 보았습니다. 아마존과 그게 뭔가?

답변

0

FileInputStream을 건너 뛰고 mid.setDataSource("https://s3.amazonaws.com/...")this overload으로 불러 들일 수있는 이유가 있습니까? 그게 효과가 있니?

편집 :

MediaPlayer mid = new MediaPlayer(); 
try { 
    mid.setDataSource("http://soul-media.s3.amazonaws.com/mp3s/1234.mp3"); 
    mid.setOnPreparedListener(new OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer mp) { 
      mp.start(); 
     } 
    }); 
    mid.setOnErrorListener(new OnErrorListener() { 
     @Override 
     public boolean onError(MediaPlayer mp, int what, int extra) { 
      return false; 
     } 
    }); 
    mid.prepareAsync(); 
} catch (IllegalArgumentException e) { 
    e.printStackTrace(); 
} catch (IllegalStateException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
} 

가 도움을합니까 : 는 분명히, 대신 스트림 prepare를 호출, 당신과 같이, 즉시 반환해야하는 prepareAsync를 호출해야 하는가?

+0

그래, 나도 그렇게 해 봤어. 하지만 그것은 나에게 오류가 말한다 : Parpare 실패 – ghycy15

+0

오, 나는 그것을 가지고있다. 아마도 MediaPlayer가 HTTPS를 지원하지 않기 때문에 HTTP URL이 필요합니다. 이것을 사용하십시오 : "http://soul-media.s3.amazonaws.com/mp3s/1234.mp3" 적절하게 소스를 편집하십시오. 내 컴퓨터에서 작동하도록했습니다. – Hexar

+0

여전히 작동하지 않는다고 말하면 오류 (-38,0) – ghycy15