
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
	<head><meta forua="true" http-equiv="Cache-Control" content="max-age=0" /></head><card id="MainCard" title="&#x6B22;&#x8FCE;&#x5149;&#x4E34;"><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a><br/>&nbsp;</p><p><b>&#x6807;&#x9898;&#x3A;</b> &#x50;&#x6C;&#x61;&#x79;&#x69;&#x6E;&#x67;&#x20;&#x41;&#x75;&#x64;&#x69;&#x6F;&#x20;&#x6F;&#x6E;&#x20;&#x41;&#x6E;&#x64;&#x72;&#x6F;&#x69;&#x64;&#x20;&#x66;&#x72;&#x6F;&#x6D;&#x20;&#x61;&#x6E;&#x20;&#x48;&#x54;&#x4D;&#x4C;&#x35;&#x20;&#x46;&#x69;&#x6C;&#x65;&#x5B;&#x8F6C;&#x5D;</p><p><b>&#x4F5C;&#x8005;&#x3A;</b> &#x64;&#x6E;&#x61;&#x77;&#x6F;</p><p><b>&#x65E5;&#x671F;&#x3A;</b> &#x32;&#x30;&#x31;&#x36;&#x2D;&#x31;&#x30;&#x2D;&#x31;&#x34;&#x20;&#x31;&#x30;&#x3A;&#x30;&#x39;&#x20;&#x41;&#x4D;</p><p><b>&#x5206;&#x7C7B;&#x3A;</b> <a href="wap.asp?do=showLog&amp;cateID=27">&#x41;&#x6E;&#x64;&#x72;&#x6F;&#x69;&#x64;&#x7F16;&#x7A0B;</a></p><p><b>&#x5185;&#x5BB9;&#x3A;</b> Introduction<br/>Earlier today, I came across a problem. I have been working on an App in Android that displays HTML5 files from the assets folder inside a WebView. One of the big problems with playing Audio in an HTML5 page is that a lot of browsers do not support the &lt;audio&gt; tag; this includes several versions of the WebView control in different versions of Android. The bottom line is that you can&#39;t expect standardized results across different versions of Android when using the HTML5 &lt;audio&gt; tag. So we&#39;re going to use a workaround that uses the native Android method of playing audio.<br/>Here is a synopsis of the paragraphs below that describe how to implement the code.<br/>&#xB7;Configuring your WebView control<br/>&#xB7;Creating an Audio Interface for the HTML5 web page<br/>&#xB7;Attaching the Audio Interface to the WebView control<br/>&#xB7;Invoking an Audio Interface function from the HTML5 page using Javascri&#112;t<br/>Implementing the Code<br/>Configuring your WebView control<br/>Cr&#101;ate a WebView control inside your layout. This is the XML code for the layout I used:<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;&lt;?xml version=&#34;1.0&#34; encoding=&#34;utf-8&#34;?&gt;<br/>&lt;WebView&nbsp;&nbsp;xmlns:android=&#34;http://schemas.android.com/apk/res/android&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;android:id=&#34;@+id/webview&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width=&#34;fill_parent&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height=&#34;fill_parent&#34; /&gt;<br/>This is the Java that I used to initially configure the WebView:<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801; //Configures the WebView during the onCr&#101;ate method<br/>@Override<br/>protected void onCr&#101;ate(Bundle savedInstanceState) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;super.onCr&#101;ate(savedInstanceState);<br/>&nbsp;&nbsp;&nbsp;&nbsp;setContentView(R.layout.activity_main);<br/>&nbsp;&nbsp;&nbsp;&nbsp;WebView myWebView = (WebView) findViewById(R.id.webview);<br/>&nbsp;&nbsp;&nbsp;&nbsp;//Set it to a webChromeClient<br/>&nbsp;&nbsp;&nbsp;&nbsp;myWebView.setWebChromeClient(new WebChromeClient());<br/>&nbsp;&nbsp;&nbsp;&nbsp;//the default for WebView is that Javascri&#112;t isn&#39;t enabled in WebView<br/>&nbsp;&nbsp;&nbsp;&nbsp;myWebView.getSettings().setJavascri&#112;tEnabled(true);<br/>&nbsp;&nbsp;&nbsp;&nbsp;//the index.html file is placed in the assets folder<br/>&nbsp;&nbsp;&nbsp;&nbsp;myWebView.loadUrl(&#34;file:///android_asset/index.html&#34;);<br/>}<br/>Creating an Audio Interface for the HTML5 web page<br/>Next, we&#39;re going to cr&#101;ate an AudioInterface Java class to play audio MP3s from the assets folder.<br/>Cr&#101;ate a new Java Class and call it &#34;AudioInterface.Java&#34;<br/>Here is the Java code for the class:<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;import java.io.IOException;<br/>import android.content.Context;<br/>import android.content.res.AssetFileDescriptor;<br/>import android.media.MediaPlayer;<br/>import android.webkit.Javascri&#112;tInterface;<br/>public class AudioInterface {<br/>&#160;&#160;&#160;&#160;Context mContext;<br/>&#160;&#160;&#160;&#160;AudioInterface(Context c) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;mContext = c;<br/>&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;//Play an audio file from the webpage<br/>&#160;&#160;&#160;&#160;@Javascri&#112;tInterface<br/>&#160;&#160;&#160;&#160;public void playAudio(String aud) { //String aud - file name passed <br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//from the Javascri&#112;t function<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;final MediaPlayer mp;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&nbsp;&nbsp;try {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&nbsp;&nbsp;AssetFileDescriptor fileDescriptor = <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;mContext.getAssets().openFd(aud);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mp = new MediaPlayer();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mp.setDataSource(fileDescriptor.getFileDescriptor(), <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileDescriptor.getStartOffset(), <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileDescriptor.getLength());<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileDescriptor.close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mp.prepare();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mp.start();<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&nbsp;&nbsp;} catch (IllegalArgumentException e) {<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&nbsp;&nbsp;} catch (IllegalStateException e) {<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#160;&#160;&#160;&#160;&nbsp;&nbsp;} catch (IOException e) {<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// TODO Auto-generated catch block<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br/>&#160;&#160;&#160;&#160;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/>&#160;&#160;&#160;&#160;}<br/>}<br/>The above code cr&#101;ates a public method that accepts a string argument which is used as the URL for the mp3 file location. So I store my mp3 files in a sub folder in the assets folder called audio. So the playAudio method needs an argument similar to this: &#34;audio/example.mp3&#34;. If it was stored directly in the assets folder it would look like this: &#34;example.mp3&#34;.<br/>Attaching the Audio Interface to the WebView control<br/>Now, we need to attach the AudioInterface class to the WebView control in the onCr&#101;ate method in o&#114;der to make it available for the Javascri&#112;t code. So add the following code to the onCr&#101;ate method we edited earlier in the layout&#39;s Java file:<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;myWebView.addJavascri&#112;tInterface(new AudioInterface(this), &#34;AndAud&#34;); <br/>Invoking an Audio Interface function from the HTML5 page using Javascri&#112;t<br/>Now we can call the playAudio function from Javascri&#112;t inside the HTML5 file by using this method:<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;&lt;script type=&#34;text/javascri&#112;t&#34;&gt;<br/>&#160;&#160;&#160;&#160;//AndAud is the alias of the AudioInterface class that we attached to the WebView<br/>&#160;&#160;&#160;&#160;AndAud.playAudio(&#34;audio/One.mp3&#34;);<br/>&lt;/script&gt; <br/>And that&#39;s it, it&#39;s kind of an annoying work around but at least you know it will work rather than waiting on the &lt;audio&gt; kinks to be worked out.<br/>dnawo&#x8865;&#x5145;&#xFF1A;<br/>&#x82E5;&#x60F3;&#x8BA9;playAudio&#x65B9;&#x6CD5;&#x4E5F;&#x80FD;&#x64AD;&#x653E;&#x7F51;&#x7EDC;&#x97F3;&#x9891;&#xFF0C;&#x53EA;&#x9700;&#x7A0D;&#x505A;&#x4FEE;&#x6539;&#x5373;&#x53EF;&#xFF1A;<br/>&#x590D;&#x5236;&#x5185;&#x5BB9;&#x5230;&#x526A;&#x8D34;&#x677F; &#x7A0B;&#x5E8F;&#x4EE3;&#x7801;@Javascri&#112;tInterface<br/>public void playAudio(String aud) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;final MediaPlayer mp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;try {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mp = new MediaPlayer();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(aud.startsWith(&#34;http://&#34;)){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mp.setDataSource(aud);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AssetFileDescriptor fileDescriptor = mContext.getAssets().openFd(aud);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mp.setDataSource(fileDescriptor.getFileDescriptor(),<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileDescriptor.getStartOffset(),<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileDescriptor.getLength());<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fileDescriptor.close();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mp.prepare();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mp.start();<br/>&nbsp;&nbsp;&nbsp;&nbsp;} catch (IllegalArgumentException e) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br/>&nbsp;&nbsp;&nbsp;&nbsp;} catch (IllegalStateException e) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br/>&nbsp;&nbsp;&nbsp;&nbsp;} catch (IOException e) {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.printStackTrace();<br/>&nbsp;&nbsp;&nbsp;&nbsp;}<br/>}<br/>&#x8D44;&#x6E90;&#x94FE;&#x63A5;<br/>[1].&#x539F;&#x6587;&#x94FE;&#x63A5;&#xFF1A;http://www.codeproject.com/Tips/677841/Playing-Audio-on-Android-from-an-HTML-File<br/>[2].Playing local audio file in Android webview app&#xFF1A;http://stackoverflow.com/questions/9201893/playing-local-audio-file-in-android-webview-app<br/>[3].android webview&#x52A0;&#x8F7D;html5 audio&#x6807;&#x7B7E; &#x8DEF;&#x5F84;&#x95EE;&#x9898;&#xFF1A;http://zhidao.baidu.com/question/589462287</p><p> + <a href="#CommentCard">&#x67E5;&#x770B;&#x5F53;&#x524D;&#x65E5;&#x5FD7;&#x8BC4;&#x8BBA;</a> (0)</p><p>&nbsp;<br/><br/><a href="wap.asp?do=Login">&#x767B;&#x5F55;</a></p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.049&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card><card id="postCommentCard"><p><b>&#x6807;&#x9898;&#x3A;</b> <a href="#MainCard">&#x50;&#x6C;&#x61;&#x79;&#x69;&#x6E;&#x67;&#x20;&#x41;&#x75;&#x64;&#x69;&#x6F;&#x20;&#x6F;&#x6E;&#x20;&#x41;&#x6E;&#x64;&#x72;&#x6F;&#x69;&#x64;&#x20;&#x66;&#x72;&#x6F;&#x6D;&#x20;&#x61;&#x6E;&#x20;&#x48;&#x54;&#x4D;&#x4C;&#x35;&#x20;&#x46;&#x69;&#x6C;&#x65;&#x5B;&#x8F6C;&#x5D;</a></p><p><br/>你没有权限发表评论</p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.049&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card><card id="CommentCard"><p>&#x6682;&#x65E0;&#x8BC4;&#x8BBA;</p><p><a href="#MainCard">&#x8FD4;&#x56DE;</a></p><p><br/>&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;&#x2500;</p><p><a href="wap.asp">&#x6728;&#x5B50;&#x5C4B;</a></p><p><a href="http://www.pjhome.net/wap.asp">PJBlog3&nbsp;v3.2.9.518</a>&nbsp;Inside.</p><p>Processed&nbsp;In&nbsp;0.049&nbsp;ms</p><do type="prev" label="&#x8FD4;&#x56DE;"><prev/></do></card>
</wml>
