<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>tong &#8211; catwhisker blog</title>
	<atom:link href="https://blog.catwhisker.jp/archives/author/tong/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.catwhisker.jp</link>
	<description>18禁同人サークル「キャットウィスカー」の制作日誌</description>
	<lastBuildDate>Wed, 29 Jan 2025 08:43:36 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://blog.catwhisker.jp/wp-content/uploads/2023/05/favicon.bmp</url>
	<title>tong &#8211; catwhisker blog</title>
	<link>https://blog.catwhisker.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>VS CodeでHTMLを編集した時にはまった事（解決済み）</title>
		<link>https://blog.catwhisker.jp/archives/10023</link>
					<comments>https://blog.catwhisker.jp/archives/10023#comments</comments>
		
		<dc:creator><![CDATA[tong]]></dc:creator>
		<pubDate>Wed, 29 Jan 2025 08:43:35 +0000</pubDate>
				<category><![CDATA[技術情報]]></category>
		<guid isPermaLink="false">https://blog.catwhisker.jp/?p=10023</guid>

					<description><![CDATA[世の中全部 VS Codeで解決すると思ったら大間違いなんですよ。ハイ。 何に一体怒っているんでしょうね。例えばこう言うHTMLが有ったりするわけです。 &#60;style type=&#8221;text/css&#8... <div class="read-more navbutton"><a href="https://blog.catwhisker.jp/archives/10023">Read More<i class="fa fa-angle-double-right"></i></a></div>]]></description>
										<content:encoded><![CDATA[
<p>世の中全部 VS Codeで解決すると思ったら大間違いなんですよ。<br>ハイ。</p>



<p>何に一体怒っているんでしょうね。<br>例えばこう言うHTMLが有ったりするわけです。</p>



<p>&lt;style type=&#8221;text/css&#8221;&gt;<br>    &lt;!&#8211;追加のCSS（検索フィールド用）&#8211;&gt;<br>    #search_bscGrpCode &nbsp; &nbsp; &nbsp;{width: 120px;}<br>&lt;/style&gt;<br>&lt;!&#8211;モジュールJSの読み込み&#8211;&gt;</p>



<p>わたくし的には「HTMLとしては問題ないHTML」として書いたんですけどね。<br>さて、これの何が問題なんでしょう。<br>いや、まぁブラウザでは警告なしで普通に表示してくれます。<br>つまりはHTMLとしては問題は無い訳です。</p>



<p>では、こいつはどうでしょう・・・</p>



<p>&lt;style type=&#8221;text/css&#8221;&gt;<br>    &lt;!&#8211;追加のCSS（検索フィールド用）&#8211;&gt;<br>&lt;/style&gt;<br>&lt;!&#8211;モジュールJSの読み込み&#8211;&gt;</p>



<p>もちろんブラウザでは警告なしで普通に表示されます。<br>つまりはこいつもHTMLとしては問題は無い訳です。<br>普段小うるさいアクセシビリティがなんちゃらなんて言う警告も出ません。</p>



<p>ところがこのファイルをVS Codeで表示すると不思議な現象が起きます。<br>そうです、不思議体験です。<br>VS Codeにはコードの色分けが機能と言うのがありまして、デフォルトだとコメントは緑でわかりやすく表示してくれたりします。<br><br>しかし、このファイルではそのコード色分け機能が動かなくなります。<br>具体的にはこんな感じです。</p>



<figure class="wp-block-image size-full"><a href="https://blog.catwhisker.jp/wp-content/uploads/2025/01/ss01.png"><img decoding="async" width="384" height="160" src="https://blog.catwhisker.jp/wp-content/uploads/2025/01/ss01.png" alt="" class="wp-image-10024" srcset="https://blog.catwhisker.jp/wp-content/uploads/2025/01/ss01.png 384w, https://blog.catwhisker.jp/wp-content/uploads/2025/01/ss01-300x125.png 300w" sizes="(max-width: 384px) 100vw, 384px" /></a></figure>



<figure class="wp-block-image size-full"><a href="https://blog.catwhisker.jp/wp-content/uploads/2025/01/ss02.png"><img loading="lazy" decoding="async" width="396" height="159" src="https://blog.catwhisker.jp/wp-content/uploads/2025/01/ss02.png" alt="" class="wp-image-10025" srcset="https://blog.catwhisker.jp/wp-content/uploads/2025/01/ss02.png 396w, https://blog.catwhisker.jp/wp-content/uploads/2025/01/ss02-300x120.png 300w" sizes="auto, (max-width: 396px) 100vw, 396px" /></a></figure>



<p>これが何やっても治らなくってVS Code再インストールしてみたり色々試したんですけど、半年くらいダメだったんですね。<br>種明かしを致しますと確証は無いんですけど、VS Codeは&lt;style>～&lt;/style>の中をCSSとして扱っているのでHTMLコメントでは無くCSSコメントの/*～*/を使わないとちゃんと表示できないって話なんだと思います。<br><br>そう言えば大昔のブラウザ向けにJavaScriptを書くときは<br>&lt;script type=&#8221;text/javascript&#8221;><br>&lt;!&#8211;<br>Javascriptコードをここに書く<br>// &#8211;><br>&lt;/script><br>みたいな意味不明のHTMLコメントを挟んでいたよななんて事を思い出したり。<br><br>とりあえずWebを探しても見つからなかった事が解決したので誰かの役に立つかも知れません事よ。<br>では、御免遊ばせっ。</p>
		<div class="wpulike wpulike-heart " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="10023"
					data-ulike-nonce="1697802664"
					data-ulike-type="post"
					data-ulike-template="wpulike-heart"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_10023"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	]]></content:encoded>
					
					<wfw:commentRss>https://blog.catwhisker.jp/archives/10023/feed</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>HTLM5、JavascriptでiOS版Safari「だけ」Audioオブジェクトの.load()が必要だった件</title>
		<link>https://blog.catwhisker.jp/archives/8778</link>
					<comments>https://blog.catwhisker.jp/archives/8778#comments</comments>
		
		<dc:creator><![CDATA[tong]]></dc:creator>
		<pubDate>Wed, 29 May 2024 06:47:50 +0000</pubDate>
				<category><![CDATA[プログラム]]></category>
		<category><![CDATA[技術情報]]></category>
		<guid isPermaLink="false">https://blog.catwhisker.jp/?p=8778</guid>

					<description><![CDATA[2月くらいにHTLM5、JavascriptでAudioオブジェクトのcurrentTime = 0では頭出しができなくなる現象についてと言う記事を書いたのですが、お客さんからiOSだけ動かないとか連絡が来て「Apple... <div class="read-more navbutton"><a href="https://blog.catwhisker.jp/archives/8778">Read More<i class="fa fa-angle-double-right"></i></a></div>]]></description>
										<content:encoded><![CDATA[
<p>2月くらいに<a href="https://blog.catwhisker.jp/archives/8359" data-type="post" data-id="8359">HTLM5、JavascriptでAudioオブジェクトのcurrentTime = 0では頭出しができなくなる現象について</a>と言う記事を書いたのですが、お客さんからiOSだけ動かないとか連絡が来て「Appleまたお前か」となってしまいました。<br>結論から言うとiOS版Safariだけメディアストリーミングデーターの扱いが異なっていた訳です。</p>



<p>どうやらiOS版Safariとデスクトップ版Safariを含む他のブラウザには以下の様な差異があったようです。</p>


<ol>
<li>デスクトップ版Safariを含む他のブラウザではAudioオブジェクトの.srcに何か入れただけでファイルの読込みが発生するがiOS版Safariでは.load()が実行されるまで何もしない</li>
<li>デスクトップ版Safariを含む他のブラウザではAudioオブジェクトの.load(メディアファイルのURL)を実行すると確実に実行されるがiOS版SafariではメディアファイルのURLが元の値と同じ場合は実行されない</li>
</ol>


<p>他のブラウザの対応を見るとガーベイジコレクションとの兼ね合いで.load()メソッドはメディアファイルの初期化に使われる格好になって居るのですが、iOS版Safariだけは頑なに「loadはloadじゃん、他の意味なんてないわい」と言っているようです。</p>



<p>まぁ別にSafariだけ違うって話なら「まぁAppleだし仕方ないか」と思わなくもないのですが、iOS版だけ違うと言うのはどうにも納得いかないですね。<br>特に２については致命的で解消するには.loadの都度URLの後ろに”?+Date.new()”とか&#8221;?+Math.random()&#8221;みたいな重複しない値をくっつけるしか手は無い訳ですが、これをやるとキャッシュが効かなくなるわけで、一々サーバーにデーターを取りに行く事になり「モバイル向けブラウザのくせに全然モバイル通信に優しくない」だけでなく「プリロードの意味が無いじゃん」ってなる気がするデス。<br></p>



<p>一方でプリロードしたメディアファイルの初期化は.load()メソッドを使うと言う点は他のブラウザと変わりがない訳で、どうにも一貫していないんですよね。</p>



<p>やっぱりAppleは呪われるべきですわ。</p>
		<div class="wpulike wpulike-heart " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="8778"
					data-ulike-nonce="45c9135a28"
					data-ulike-type="post"
					data-ulike-template="wpulike-heart"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_8778"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	]]></content:encoded>
					
					<wfw:commentRss>https://blog.catwhisker.jp/archives/8778/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>HTLM5、JavascriptでAudioオブジェクトのcurrentTime = 0では頭出しができなくなる現象について</title>
		<link>https://blog.catwhisker.jp/archives/8359</link>
					<comments>https://blog.catwhisker.jp/archives/8359#comments</comments>
		
		<dc:creator><![CDATA[tong]]></dc:creator>
		<pubDate>Sat, 10 Feb 2024 06:12:31 +0000</pubDate>
				<category><![CDATA[プログラム]]></category>
		<category><![CDATA[技術情報]]></category>
		<guid isPermaLink="false">https://blog.catwhisker.jp/?p=8359</guid>

					<description><![CDATA[非常にご無沙汰をしております。tongでございます。ここまで間があいてしまいますと「あんた誰？」みたいな方ばかりかと思いますが、自己紹介は無しの方向でお願いします。私事で色々ございましてなりを潜めておりましたが生活の為に... <div class="read-more navbutton"><a href="https://blog.catwhisker.jp/archives/8359">Read More<i class="fa fa-angle-double-right"></i></a></div>]]></description>
										<content:encoded><![CDATA[
<p>非常にご無沙汰をしております。tongでございます。<br>ここまで間があいてしまいますと「あんた誰？」みたいな方ばかりかと思いますが、自己紹介は無しの方向でお願いします。<br>私事で色々ございましてなりを潜めておりましたが生活の為にお仕事はする訳で、そこで「ちょいとハマった」事があって調べても中々わからなかったので、ここに書いておけば誰かの助けになるかなと言う事で書いておこうと思います。</p>



<p>背景説明としてはWebアプリの開発から7年くらい離れていたのですが、色々あって昔 自分がFlashで作った真面目な仕事のWebアプリ化を断ったら他所に頼んだけど失敗したので再度舞い戻って来た。って感じの話。</p>



<p>記事内容はタイトルの通りで、ネットワークの遅延を防ぐために100個位の短い音声ファイル（えっちぃ声じゃ無いよ）を先読みしてユーザー操作に応じて再生するって感じの挙動。<br><br>引っかかったのは2点で、一つは動的にAudio「タグ」を大量に生成してHTMLのエレメントに追加するとFirefoxでは読み込みに引っ掛かりが出る場合があること。<br>今回はAudioタグのコントロールを表示したりしないので、Javascriptのオブジェクトとして扱ってやれば回避可能でした。</p>



<p>もう一つは、Mac OS XのApple Safariのみ先読みした音声ファイルの2度目の再生が出来ない、あるいは途中から再生されると言う現象。<br>最初は「またアップルかっ！」とキレそうになるも、そこはホレ大人ですから落ち着いてよく考えてみる。<br>すると、まず途中から再生されるのは1回目の再生時に最後まで再生されない場合に再生位置が残っているのでは無いかと言う推察に至ります。<br><br>途中から再生されちゃダメなら再生前に頭出しすりゃ良いじゃん。って事で「currentTime = 0」を入れる訳ですが、これが出来ない。<br><br><strong>なにこれ？</strong><br><br>ReadOnlyでもないプロパティーに値がセットできないのは変です。異常です。<br>この辺をWebで検索するとSafariとChromeの自動再生回避ばかりが引っかかるんだけど、そうじゃないんだよね・・・<br>って事でさらに調べて行くと「new Audio(&#8216;URL&#8217;)でAudioオブジェクトを再度作るとcurrentTime = 0じゃ無くても頭出しできるよっ」みたいな記述がSafari開発者のコミュニティーで見つかったので早速実装。</p>



<p>ふむ、確かにSafariでは動く。しかし他のブラウザでテストを行うとFireFoxで動かないでは無いか。<br>件のページにも今のSafariは「さすがはSafari、大量にオブジェクトを作っても何とも無いぜ」だけど昔は大量にオブジェクトをnewすると動作が不安定になったってあって「やっぱりアップル関係者はSafariしか考えてないなっ！」となって居た訳です。</p>



<p>その後もcurrentTime = 0関連で、メモリー上に「先頭が0以外の値のAudioストリームデーターはcurrentTimeを0に出来ない」とか、色々出てきて「先頭が0以外の値のAudioストリームデーター」ってどんなよ？ってなるのですが、「あぁユーザーがコントローラーで再生位置をジャンプしたりするとそうなるか、<strong>メモリー上に無いなら出来ないわな</strong>」。<br>そして「new Audio(&#8216;URL&#8217;)」で解消できるって事は<strong>ダメな時はメモリー上にデーターが無かった</strong>って事であり、currentTime = 0に気を取られていたけど、これはもっと別の現象なのではと言う考えに至り・・・</p>



<p>そう、そうなんです。<br>これは「何らかの原因でメモリー上に音声データーが無い」事が原因なんですね。<br><br>ここで種明かしをすると、この現象はガーベイジコレクトが原因なんですね。<br>と言うか昔、同じECMAスクリプトであるActionScriptでも同じ現象に出くわした事が有った気がしてきました。<br><br>ガーベイジコレクトとは使用メモリーの節約機能で、ロードやアクセスしてから時間が経ったオブジェクトはエントリのためのオブジェクトのガワだけ残して実体はメモリーから削除されちゃうんです。<br>このため最初の頃はちゃんと再生できていた音声が時間が経つと正しく再生できなかったり、頭出しが出来ない等の現象が起きてしまう訳です。</p>



<p>では具体的にはどう対策したらよいのかと言いますと、new Audio(&#8216;URL&#8217;)でAudioオブジェクトを大量に作ると言う方法ではAudioオブジェクトの作り過ぎでスマートじゃない。何よりFireFoxで動かないなどの弊害があります。<br>これを回避するには、新しくオブジェクトを作るのではなくAudioオブジェクト.load(&#8216;URL&#8217;)とします。</p>



<p>//先読みでデーターをロードする<br>let soundObj_0 = new Audio(&#8216;sound/sound_0.mp3&#8217;);　//プリロード<br>・<br>・<br>//どのタイミングで音声データーが使われるか分からないので<br>//使うときはとにかくloadしてしまう<br>soundObj_0.load(&#8216;sound/sound_0.mp3&#8217;);　//再生前に無条件にロード<br>soundObj_0.currentTime = 0;　　//念のために再生位置を0リセット<br>soundObj_0.play();　　//音声再生<br><br>こんな感じですかね。</p>



<p>なお、2回目のload(&#8216;URL&#8217;)はブラウザ キャッシュからロードが行われるので読み込みにネットワークの遅延は出ないようです。</p>



<p>めでたしめでたし。</p>
		<div class="wpulike wpulike-heart " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="8359"
					data-ulike-nonce="19cbf35117"
					data-ulike-type="post"
					data-ulike-template="wpulike-heart"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_8359"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	]]></content:encoded>
					
					<wfw:commentRss>https://blog.catwhisker.jp/archives/8359/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>インサルト・インサート for スマートデバイス 販売申請中</title>
		<link>https://blog.catwhisker.jp/archives/3764</link>
					<comments>https://blog.catwhisker.jp/archives/3764#comments</comments>
		
		<dc:creator><![CDATA[tong]]></dc:creator>
		<pubDate>Wed, 15 Jun 2016 06:51:32 +0000</pubDate>
				<category><![CDATA[制作日誌]]></category>
		<guid isPermaLink="false">https://blog.catwhisker.jp/?p=3764</guid>

					<description><![CDATA[現在DLsite、DMM同人で販売中の「インサルト・インサート」ですが、アンドロイド版としてインサルト・インサート for スマートデバイスの販売申請を行いました。 近日公開予定です。　販売開始されました。 諸般の事情で... <div class="read-more navbutton"><a href="https://blog.catwhisker.jp/archives/3764">Read More<i class="fa fa-angle-double-right"></i></a></div>]]></description>
										<content:encoded><![CDATA[<p>現在<a href="http://www.dlsite.com/maniax/work/=/product_id/RJ175315.html">DLsite</a>、<a href="http://www.dmm.co.jp/dc/doujin/-/detail/=/cid=d_094866/">DMM同人</a>で販売中の「インサルト・インサート」ですが、アンドロイド版としてインサルト・インサート for スマートデバイスの販売申請を行いました。<br />
<s>近日公開予定です。</s>　販売開始されました。</p>
<p>諸般の事情で<a href="http://www.dlsite.com/maniax/work/=/product_id/RJ179370.html">DLsite</a>のみの販売となりますがよろしくお願いします。</p>
<p>作品内容につきましては<a href="https://catwhisker.jp/ii/sd.html">こちら</a>をご覧ください。</p>
		<div class="wpulike wpulike-heart " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="3764"
					data-ulike-nonce="2e64c6378e"
					data-ulike-type="post"
					data-ulike-template="wpulike-heart"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_3764"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	]]></content:encoded>
					
					<wfw:commentRss>https://blog.catwhisker.jp/archives/3764/feed</wfw:commentRss>
			<slash:comments>4</slash:comments>
		
		
			</item>
		<item>
		<title>インサルト・インサート　不具合修正</title>
		<link>https://blog.catwhisker.jp/archives/3760</link>
					<comments>https://blog.catwhisker.jp/archives/3760#respond</comments>
		
		<dc:creator><![CDATA[tong]]></dc:creator>
		<pubDate>Wed, 25 May 2016 10:39:44 +0000</pubDate>
				<category><![CDATA[制作日誌]]></category>
		<guid isPermaLink="false">https://blog.catwhisker.jp/?p=3760</guid>

					<description><![CDATA[前回5月20日のDMM版の更新においてゲームの進行が途中で止まる不具合のご連絡をいただきました。 内部を検証しました結果DMM版において一部ファイル名が正しく設定されていない不具合が見つかりましたので、修正を行いDMM様... <div class="read-more navbutton"><a href="https://blog.catwhisker.jp/archives/3760">Read More<i class="fa fa-angle-double-right"></i></a></div>]]></description>
										<content:encoded><![CDATA[<p>前回5月20日のDMM版の更新においてゲームの進行が途中で止まる不具合のご連絡をいただきました。</p>
<p>内部を検証しました結果DMM版において一部ファイル名が正しく設定されていない不具合が見つかりましたので、修正を行いDMM様に再登録を行いました。</p>
<p>当該バージョンをお買い上げ、ダウンロードされましたお客様にはご迷惑をおかけした事をお詫び申し上げます。</p>
<p>現在は修正版がアップロードされていますので、お手数ですがダウンロード・再インストールのほどよろしくお願いいたします。</p>
		<div class="wpulike wpulike-heart " ><div class="wp_ulike_general_class wp_ulike_is_restricted"><button type="button"
					aria-label="いいねボタン"
					data-ulike-id="3760"
					data-ulike-nonce="1d5465ea25"
					data-ulike-type="post"
					data-ulike-template="wpulike-heart"
					data-ulike-display-likers=""
					data-ulike-likers-style="popover"
					class="wp_ulike_btn wp_ulike_put_image wp_post_btn_3760"></button><span class="count-box wp_ulike_counter_up" data-ulike-counter-value="0"></span>			</div></div>
	]]></content:encoded>
					
					<wfw:commentRss>https://blog.catwhisker.jp/archives/3760/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
