Я разрабатываю приложение для отправки плейлиста на Chromecast. Я хочу создать плейлист из местных медиа (видео, изображения). Мое приложение получит все видео и изображения из определенной папки и создаст список воспроизведения. Этот плейлист будет отправлен на Chromecast.Создание плейлиста с SD-карты и отправка его в Chromecast
Как достичь этого, я создал NanoHTTPD-сервер на своем мобильном устройстве. И оттуда показываю видео. Но этот сервер обслуживает только одно видео за раз.
Я хочу обслуживать определенную папку с моего локального сервера, а затем хочу создать список воспроизведения всех видеороликов и изображений, хранящихся в этой папке.
Это мой NanoHTTPD: -
public class WebServer extends NanoHTTPD
{
public WebServer() throws IOException
{
super(8089);
}
@Override
public Response serve(String uri, Method method,
Map<String, String> header, Map<String, String> parameters,
Map<String, String> files)
{
String answer = "";
FileInputStream fis = null;
String path;
String fileOutput="";
int counter;
try
{
path = Environment.getExternalStorageDirectory() + "/DCIM/Video/bbb.mp4";
fis = new FileInputStream(path);
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return new NanoHTTPD.Response(Status.OK, "video/mp4", fis);
}
}
Это, как я кастинг видео: -
private void startVideo()
{
MediaMetadata mediaMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE);
mediaMetadata.putString(MediaMetadata.KEY_TITLE, getString(R.string.video_title));
String videoURL = Configuration.video_url;
MediaInfo mediaInfo = new MediaInfo.Builder(videoURL)
.setContentType(getString(R.string.content_type_mp4))
.setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
.setMetadata(mediaMetadata)
.build();
Toast.makeText(getApplicationContext(), "Video build " + videoURL, Toast.LENGTH_LONG).show();
try
{
mRemoteMediaPlayer.load(mApiClient, mediaInfo, true)
.setResultCallback(new ResultCallback<RemoteMediaPlayer.MediaChannelResult>()
{
@Override
public void onResult(RemoteMediaPlayer.MediaChannelResult mediaChannelResult)
{
if(mediaChannelResult.getStatus().isSuccess())
{
mVideoIsLoaded = true;
mButton.setText(getString(R.string.pause_video));
Toast.makeText(getApplicationContext(), "Media loaded successfully", Toast.LENGTH_LONG).show();
}
}
});
}
catch (IllegalStateException e)
{
Toast.makeText(getApplicationContext(), "Problem occurred with media during loading : " + e, Toast.LENGTH_LONG).show();
}
catch (Exception e)
{
Toast.makeText(getApplicationContext(), "Problem occurred with media during loading : " + e, Toast.LENGTH_LONG).show();
}
}
Пожалуйста, помогите мне, я не могу понять что делать.
Спасибо, сэр, что очень помогло мне. Теперь проблема заключается в том, что я отправляю видео и изображения вместе в виде списка воспроизведения. Он воспроизводит мое видео, но когда ему приходится загружать изображение, он садится туда сам. –
API-интерфейсы Queuing, добавленные в SDK, предназначены для видео и аудио элементов; в настоящее время поддержка изображений в очереди отсутствует. Например, видео/аудио элемент в очереди воспроизводится и заканчивается, а затем очередь переходит к следующему элементу; если у вас есть изображение, нет никаких функций «длительности» или «воспроизведения», поэтому нет понятия «перейти к следующему элементу». –
Хорошо, сэр, но есть ли способ достичь этого. Я хочу сказать, что хочу сделать плейлист с видео и изображениями вместе. Поэтому я могу добиться этого любым способом или нет возможности сделать это. –