0

Chromecast ドングルを使用して、受信機で頻繁に変更される Android からのビットマップを表示しようとしています。現在行っている方法は、画像を Base64 に変換し、それを URL として送信することです。これは機能しますが、非常に遅く、非効率的です。受信者にローカル ビットマップを表示する最良の方法は何でしょうか?

関連する Java コード:

Bitmap bitmap1 = BitmapFactory.decodeByteArray(bytes, 0, bytes.length, options);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap1.compress(CompressFormat.JPEG, 85, baos);
String image = "data:image/jpeg;base64,"+Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT);
mMessageStream.loadMedia(image, mMetaData, true);

receiver.html:

<html>
<script src="https://www.gstatic.com/cast/js/receiver/1.0/cast_receiver.js">
</script>
<script type="text/javascript">

    var receiver = new cast.receiver.Receiver(
        'ACTUAL_APP_ID_HERE', [cast.receiver.RemoteMedia.NAMESPACE],
        "",
        3);
    var remoteMedia = new cast.receiver.RemoteMedia();
    remoteMedia.addChannelFactory(
        receiver.createChannelFactory(cast.receiver.RemoteMedia.NAMESPACE));

    receiver.start();

    window.addEventListener('load', function() {
      var elem = document.getElementById('vid');
      remoteMedia.setMediaElement(elem);
    });
</script>

<body>
<img id="vid" style="position:absolute;top:0;left:0;height:100%;width:100%" />
</body>
</html>
4

2 に答える 2

1

これはおそらく最良の方法ではありませんが、アプリでローカル Web サーバーを起動し、正しいリンクを受信者に送信します。http 要求で、サーバーはディスクからファイルをストリーミングします。どれだけ速く/頻繁に変更できるかをテストしていません。

于 2013-08-02T21:02:50.670 に答える