<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>&#xB77C;&#xC774;&#xBE0C;&#xC2A4;&#xB9C8;&#xD2B8;</provider_name><provider_url>https://atmokpo.com/w</provider_url><author_name>root</author_name><author_url>https://atmokpo.com/w/author/root/</author_url><title>SwiftUI Style, iPhone App Development: Adding Playback Status Images to an Audio App - &#xB77C;&#xC774;&#xBE0C;&#xC2A4;&#xB9C8;&#xD2B8;</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="4wRIMqCPRM"&gt;&lt;a href="https://atmokpo.com/w/32789/"&gt;SwiftUI Style, iPhone App Development: Adding Playback Status Images to an Audio App&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://atmokpo.com/w/32789/embed/#?secret=4wRIMqCPRM" width="600" height="338" title="&#x201C;SwiftUI Style, iPhone App Development: Adding Playback Status Images to an Audio App&#x201D; &#x2014; &#xB77C;&#xC774;&#xBE0C;&#xC2A4;&#xB9C8;&#xD2B8;" data-secret="4wRIMqCPRM" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script&gt;
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://atmokpo.com/w/wp-includes/js/wp-embed.min.js
&lt;/script&gt;
</html><description>In recent years, SwiftUI has played a significant role in Apple&#x2019;s app development ecosystem. SwiftUI provides an intuitive way to build UI with a declarative syntax, similar to Flutter. Today, we will explore how to create an audio app using SwiftUI and add images that change dynamically based on the playback state. 1. Basic Concepts &hellip; &#xB354; &#xBCF4;&#xAE30; ""</description></oembed>
