0
我有一個文件夾,其中包含多張使用Chromecast作爲幻燈片的SD卡中的圖像。我使用nanoHTTPD來爲這些圖像提供服務,每次點擊我的'下一個按鈕'我都會將我的列表的下一個圖像提供給服務器。我得到的IP地址的一個例子是:192.168.X.XX:8080
。我試圖刷新這個IP地址,所以當我點擊提到的'下一個按鈕'時,我可以在電視上顯示下一個圖像。問題是我總是看到相同的圖像,但是如果我斷開並再次連接接收機,則顯示的圖像是正確的。如何使用Chromecast進行幻燈片演示
@Override
public Response serve(String uri, Method method, Map<String, String> header,Map<String, String> parameters, Map<String, String> files) {
String mediasend = "image/jpeg";
FileInputStream fis = null;
String root1 = Environment.getExternalStorageDirectory().toString() + "/saved_images";
//Log.d("Files", "Path: " + root1);
File f = new File(root1);
File file[] = f.listFiles();
Log.d("Files", "Size: " + file.length);
for (int i = 0; i < file.length; i++) {
Log.d("Files", "FileName:" + file[i].getName());
try {
fis = new FileInputStream(Environment.getExternalStorageDirectory()
+ "/saved_images" + "/" + file[page_number].getName());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
return new NanoHTTPD.Response(etsiit.etsiitcast_def.NanoHTTPD.Response.Status.OK, mediasend, fis);
}
}
其中page_number
每增加一次,我點擊'下一個按鈕'。
private void startSlideShow() {
MediaMetadata mediaMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MOVIE);
mediaMetadata.putString(MediaMetadata.KEY_TITLE, getString(R.string.titulo_video));
String dir_ip = wifiIpAddress();
MediaInfo mediaInfo = new MediaInfo.Builder(dir_ip)
.setContentType("image/jpeg")
.setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
.setMetadata(mediaMetadata)
.build();
try {
mRemoteMediaPlayer.load(apiClient, mediaInfo, true)
.setResultCallback(new ResultCallback<RemoteMediaPlayer.MediaChannelResult>() {
@Override
public void onResult(RemoteMediaPlayer.MediaChannelResult mediaChannelResult) {
if(mediaChannelResult.getStatus().isSuccess()) {
mVideoIsLoaded = true;
}
}
});
} catch(Exception e) {
}
}
我現在用的是wifiIpAddress
來獲得IP地址:
public String wifiIpAddress() {
WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
ipdevice=String.format("http://%d.%d.%d.%d:8080",(ipAddress & 0xff),(ipAddress >> 8 & 0xff),(ipAddress >> 16 & 0xff),(ipAddress >> 24 & 0xff));
return ipdevice;
}
非常感謝,解決了我的問題。我剛添加了一個時間戳到網址,它現在工作正常。 –