2

デバイスから Chromecast にローカル mp3 ファイルを送信したいと考えています。私はすでにNanohttpdのバージョンを実行しており、うまく動作しています。テレビで問題なく曲を再生できます:

MediaMetadata mediaMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MUSIC_TRACK);

MediaInfo mediaInfo = new MediaInfo.Builder(
 "http://192.168.0.XX:8080")
.setContentType("audio/mp3")
.setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
.setMetadata(mediaMetadata)
.build()

mRemoteMediaPlayer.load(mApiClient, mediaInfo, true) .....

...ここで、「http://192.168.0.XX:8080」はサーバーの URL です。

ここで、mediaMetadata にカバーを追加したいのですが、この画像は次のように WebImage として Cromecast に送信されるため、画像ファイルも提供する必要があります。

mediaMetadata.addImage(new WebImage(Uri.parse("My Url in Nanohttpd ")));

リソースから直接 WebImage を作成することは可能でしょうか??

そうでない場合、両方(歌と絵)を同時に提供する方法はありますか?http://192.168.0.XX:8080/song の曲と http://192.168.0.XX:8080/image の画像またはそのようなものを提供できるかもしれませんが、方法がわかりません。 ..

これが私の現在の Nanohttpd serve メソッドです。

   @Override
    public Response serve(String uri, Method method,
                          Map<String, String> header,
                          Map<String, String> parameters,
                          Map<String, String> files) {

        String mediasend = "audio/mp3";
        FileInputStream fis = null;
        File song = new File(songLocalPath);
        Log.e("Creando imputStream", "Size: ");
            try {
                fis = new FileInputStream(song);
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            }
        Response.Status st = Response.Status.OK;
        return new NanoHTTPD.Response(st, mediasend, fis,song.length());
    } 

これに対するすべてのアプローチは歓迎されます。

4

1 に答える 1

2

さて、最後に serve メソッドを変更して 2 つの URL を持ち、それらを区別します。

@Override
public Response serve(String uri, Method method,
                      Map<String, String> header,
                      Map<String, String> parameters,
                      Map<String, String> files) {


 if (uri.contains("picture")){          
 //serve the picture 
      return new NanoHTTPD.Response(st, mediasend, fisPicture, f.length());

 }else if (uri.contains("song")){

 //serve the song
      return new NanoHTTPD.Response(st, mediasend, fisSong, f.length());
 }

Sender アプリで曲を送信するには:

 MediaMetadata mediaMetadata = new       MediaMetadata(MediaMetadata.MEDIA_TYPE_MUSIC_TRACK);

 MediaInfo mediaInfo = new MediaInfo.Builder(
 "http://192.168.0.XX:8080/song")
 .setContentType("audio/mp3")
 .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
 .setMetadata(mediaMetadata)
 .build()

 mRemoteMediaPlayer.load(mApiClient, mediaInfo, true)

アルバム カバーの場合:

mediaMetadata.addImage(new WebImage(Uri.parse(http://192.168.0.XX:8080/picture));
于 2015-08-18T16:13:53.010 に答える