自定义接收器中专辑艺术图像的奇怪渲染
Posted
技术标签:
【中文标题】自定义接收器中专辑艺术图像的奇怪渲染【英文标题】:Weird rendering of the album-art-image in custom receiver 【发布时间】:2019-09-17 13:55:07 【问题描述】:我开发了一个自定义接收器,效果很好,但是专辑封面图像上的图形渲染看起来很奇怪。我还尝试了“样式化媒体接收器”,以确保我没有搞砸任何事情 - 结果相同。
其他人看过这个(查看下面的图片)?频道标志是透明的 PNG。
Screenshot of bug
【问题讨论】:
我也有同样的问题。如果专辑封面包含透明层,这似乎会发生。 【参考方案1】:let shadowRootElement = document.querySelector( 'cast-media-player' ).shadowRoot;
let style = document.createElement( 'style' );
style.innerhtml = '#castMetadataImage background-image: none !important; ';
shadowRootElement.appendChild( style )
在播放器启动后立即运行它,它应该可以解决问题。
【讨论】:
【参考方案2】:请分享您的代码。没有任何代码审查是很难知道的。您是否按照https://developers.google.com/cast/docs/caf_receiver/customize_ui 上的官方指南进行接收器应用程序?您还需要检查您的发件人应用程序。
【讨论】:
我使用了来自 codelabs (codelabs.developers.google.com/codelabs/cast-receiver) 的示例。使用透明元数据图像时似乎会出现问题。图像呈现在顶部的更大版本。 这也是我的结论——透明图像会导致渲染失败并显示“双重”图像。 顺便说一句,当整个 CAF 框架由 Google 托管和维护时,很难共享任何代码。如果有帮助,我可以分享 PNG,但我对此表示怀疑。【参考方案3】:这个问题似乎与 cssText 属性有关 - 删除它,修复呈现问题:
var fixDoubleLogoBug = function()
try
document.querySelector("#player")
.shadowRoot
.querySelector("#castMetadataImage").style.cssText = "";
catch(e)
console.warn("Could not remove logo");
【讨论】:
以上是关于自定义接收器中专辑艺术图像的奇怪渲染的主要内容,如果未能解决你的问题,请参考以下文章
单击另一个活动时如何发送自定义arraylist的列表项的数据?