欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

.netvb播放提示音的簡(jiǎn)單介紹

想在vb.net的程序中有一個(gè)語(yǔ)音提示,該怎么寫(xiě)

首先添加一個(gè)系統(tǒng)的語(yǔ)音COM組件的引用microsoft speech object library然后在程序中聲明一個(gè)語(yǔ)音類(lèi)dim RC As SpeechLib.SpSharedRecoContext這個(gè)類(lèi)有一些事件,如果你要處理它的一些事件,可以用withevent來(lái)聲明然后在窗體LOAD事件或你需要的地方先創(chuàng)建一個(gè)實(shí)例RC = New SpeechLib.SpSharedRecoContext當(dāng)一個(gè)RC被實(shí)例化后,系統(tǒng)就會(huì)運(yùn)行語(yǔ)音識(shí)別程序.前提是你的系統(tǒng)已經(jīng)正確安裝這個(gè)功能.一般默認(rèn)就已經(jīng)安裝好的.其次提醒一下,WIN7的語(yǔ)音識(shí)別比XP的好N倍.從閱讀到偵聽(tīng)都好很多.然后就可以在你需要閱讀的地方使用RC.Voice.Speak("hello 我", 11)11那里是一些枚舉,用來(lái)標(biāo)識(shí)系統(tǒng)用前臺(tái)還是后臺(tái)或其他方式來(lái)閱讀文字,簡(jiǎn)單的來(lái)說(shuō)就是閱讀的時(shí)候不會(huì)卡住你的程序.你可以選其他的枚舉來(lái)試試作用.以上為閱讀部分.如果需要程序聽(tīng)你說(shuō)話,則需要聲明一個(gè)偵聽(tīng)類(lèi)dim RG As SpeechLib.ISpeechRecoGrammar在初始化時(shí)將之與上面的RC建立關(guān)系,此時(shí)則必須要用withevent來(lái)聲明上面的RC,因?yàn)樯婕半娔X聽(tīng)到你的語(yǔ)音后,會(huì)觸發(fā)一個(gè)事件,并將聽(tīng)到的內(nèi)容傳遞到該事件.其次,要讓系統(tǒng)聽(tīng)到的解析為命令,就必須準(zhǔn)備一個(gè)XML結(jié)構(gòu)的文件來(lái)保存那些固定的命令.如果電腦在XML文件中找不到那些固定命令或同時(shí)不屬于系統(tǒng)命令,電腦將會(huì)將其解釋為聽(tīng)寫(xiě).RG = RC.CreateGrammar '(0)

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到南充網(wǎng)站設(shè)計(jì)與南充網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類(lèi)型包括:網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋南充地區(qū)。

RG.CmdLoadFromFile("聽(tīng)到.xml", SpeechLib.SpeechLoadOption.SLODynamic)

RG.CmdSetRuleIdState(0, SpeechLib.SpeechRuleState.SGDSActive)然后寫(xiě)一個(gè)過(guò)程來(lái)處理聽(tīng)到的事件Private Sub 聽(tīng)到命令(ByVal StreamNumber As Integer, ByVal StreamPosition As Object, ByVal RecognitionType As SpeechLib.SpeechRecognitionType, ByVal 話語(yǔ) As SpeechLib.ISpeechRecoResult) Handles RC.Recognition RC.Voice.Speak("我聽(tīng)到了" 話語(yǔ).PhraseInfo.GetText, 11)End Sub以上為偵聽(tīng)部分.下面列一個(gè)XML的例文?xml version="1.0" encoding="gb2312"?

GRAMMAR LANGID="804"

RULE NAME="命令" TOPLEVEL="ACTIVE"

L

P打開(kāi)播放器

P上我的QQ

P關(guān)閉你自己 /L

/RULE

/GRAMMAR要讓系統(tǒng)正確地偵聽(tīng)到你說(shuō)的話,前提你必須運(yùn)行語(yǔ)音識(shí)別程序并讓其激活到"正在聆聽(tīng)"狀態(tài).并且你必須有一個(gè)能正常使用的話筒而且保證話筒已經(jīng)打開(kāi).(廢話-_-|||)以上就是用VB.NET語(yǔ)音識(shí)別的最基本的一些操作.希望對(duì)你有幫助.更深入的內(nèi)容有興趣的話可以和我一起研究.

vb提示音問(wèn)題

一、把你的提示音用轉(zhuǎn)換器轉(zhuǎn)化為wav格式,提示音文件不可太大,否則可能無(wú)法播放,控制在幾Kb以內(nèi)!

二、把wav格式的聲音做成vb資源文件

三、用如下代碼

Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (lpszSoundName As Any, ByVal uFlags As Long) As Long'API聲明要放在程序代碼最頂上

Private Sub Command2_Click()

Dim B() As Byte

B = LoadResData(101, "CUSTOM")

sndPlaySound B(0), H4 '播放內(nèi)存里的聲音,H8 ' 循環(huán)播放,H1 ' 異步播放

End Sub

vb.net 控件添加聲音

建一個(gè)窗體,里面添加一個(gè)按鈕,代碼里拷入下面的代碼,運(yùn)行后,單擊按鈕

Private Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Private Const SND_ASYNC = H1 '異步播放

Private Const SND_SYNC = H0 '同步播放 (缺?。?/p>

Private Sub Command1_Click()

Dim SoundFile As String, Result As Long

SoundFile = "c:\Windows\Media\chord.wav"

Result = sndPlaySound(SoundFile, SND_ASYNC)

End Sub

說(shuō)明:

要播放不同的聲音,例如0-9,你找到相應(yīng)的wav文件,編程實(shí)現(xiàn)就可以了。

PS:沒(méi)注意到你是VB.NET,上面的代碼是VB6的,生成工程文件,直接用.NET打開(kāi)并自動(dòng)轉(zhuǎn)換,也可以使用。

VB.NET問(wèn)題,做一個(gè)定時(shí)響鈴提醒程序,怎樣在程序中引用鈴音,請(qǐng)寫(xiě)寫(xiě)代碼,是在timer中添加代碼嗎

把類(lèi)似下面的三行代碼放入timer即可。關(guān)鍵是放音程序。

DealWav.mciSendString "open " sA " alias wav", sB, Len(sB), 0

DealWav.mciSendString "play wav ", sB, Len(sB), 0

DealWav.mciSendString "close wav ", sB, Len(sB), 0

送你DealWav模塊

Dim WAVBuffer() As Byte

Dim DataLenOut As Long

Dim Datapos1 As Long

Dim Datapos2 As Long

Dim ChunkLen As Long

Dim factpos As Long

Type PCMWAVEFORMAT '標(biāo)準(zhǔn) PCM 格式定義

wFormatTag As Integer '格式標(biāo)志,區(qū)分不同的格式,PCM 為 1

nChannels As Integer '音頻通道數(shù),單聲道為 1 ,立體聲為 2

nSamplesPerSec As Long '每秒的采樣數(shù),即采樣率。

'標(biāo)準(zhǔn)的采樣率有8.000 kHz 、11.025 kHz 、

'22.050 kHz 、44.100 kHz 等。

nAvgBytesPerSec As Long '每秒的字節(jié)數(shù),即數(shù)據(jù)率。

'數(shù)據(jù)率 = 通道數(shù)×采樣率×采樣大小 / 8

nBlockAlign As Integer '塊對(duì)齊,即波形數(shù)據(jù)的最小單位。

'塊對(duì)齊 = 通道數(shù)×采樣大小 / 8

wBitsPerSample As Integer '每個(gè)采樣所占的位數(shù),即采樣大小。

'采樣大小有 8 位和 16 位兩種。

End Type

Private Type WaveHead

strRiff As String * 4 ' 00H 4 char "RIFF"標(biāo)志

lngFileLen As Long ' 04H 4 long int 文件長(zhǎng)度

strWave As String * 4 ' 08H 4 char "WAVE"標(biāo)志

strFmt As String * 4 ' 0CH 4 char "fmt"標(biāo)志

lngTmp As Long ' 10H 4   過(guò)渡字節(jié)(不定)

intFormat As Integer ' 14H 2 int 格式類(lèi)別(10H為PCM形式的聲音數(shù)據(jù))

intChan As Integer ' 16H 2 int 通道數(shù),單聲道為1,雙聲道為2

intFreq As Long ' 18H 2 int 采樣率(每秒樣本數(shù)),表示每個(gè)通道的播放速度,

lngSendSpeed As Long ' 1CH 4 long int 波形音頻數(shù)據(jù)傳送速率,其值為通道數(shù)×每秒數(shù)據(jù)位數(shù)×每樣本的數(shù)據(jù)位數(shù)/8。播放軟件利用此值可以估計(jì)緩沖區(qū)的大小。

intBlock As Integer ' 20H 2 int 數(shù)據(jù)塊的調(diào)整數(shù)(按字節(jié)算的),其值為通道數(shù)×每樣本的數(shù)據(jù)位值/8。播放軟件需要一次處理多個(gè)該值大小的字節(jié)數(shù)據(jù),以便將其值用于緩沖區(qū)的調(diào)整。

intBit As Integer ' 22H 2   每樣本的數(shù)據(jù)位數(shù),表示每個(gè)聲道中各個(gè)樣本的數(shù)據(jù)位數(shù)。如果有多個(gè)聲道,對(duì)每個(gè)聲道而言,樣本大小都一樣。

strData As String * 4 ' 24H 4 char 數(shù)據(jù)標(biāo)記符"data"

lngDataLenth As Long ' 28H 4 long int 語(yǔ)音數(shù)據(jù)的長(zhǎng)度

End Type

Public Declare Function sndPlaySound Lib "winmm" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

' flag uitzetten

Public Const SND_SYNC = H0

Public Const SND_ASYNC = H1

Public Const SND_NODEFAULT = H2

Public Const SND_MEMORY = H4

Public Const SND_LOOP = H8

Public Const SND_NOSTOP = H10

Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

Public Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

Public Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long

'Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As Long) As Long

Public Declare Sub RtlMoveMemory Lib "kernel32" (lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)

Private Sub Command1_Click()

'為了防止隨意選取的兩個(gè)wav文件格式不同,我干脆就將同一個(gè)文件重復(fù)兩次

LinkWav "C:\WINNT\Media\ringout.wav", "C:\WINNT\Media\ringout.wav", "f:\temp.wav"

End Sub

Private Function getWavHead(strFileName As String) As WaveHead

'獲取文件頭

Dim iFreeFile

iFreeFile = FreeFile()

On Error GoTo ErrHandle

Dim MyHead As WaveHead

Open strFileName For Binary As #iFreeFile

Get #iFreeFile, , MyHead

Close #iFreeFile

getWavHead = MyHead

ErrHandle:

End Function

Public Function LinkWav(strFileName1 As String, strFileName2 As String, strOutFile As String) As Boolean

Dim headFirst As WaveHead

Dim headNext As WaveHead

Dim headNew As WaveHead '新文件的頭

Dim Data1() As Byte

Dim Data2() As Byte

Dim i As Long

LinkWav = False

'獲取頭

headFirst = getWavHead(strFileName1)

headNext = getWavHead(strFileName2)

'文件頭比較

DoEvents '這里應(yīng)該對(duì)兩個(gè)頭作比較,如果采樣率,聲道數(shù)等等不一致的話不能進(jìn)行連接

'偶就偷懶不做這個(gè)校驗(yàn)啦,如果要實(shí)際應(yīng)用千萬(wàn)要完成這一塊的代碼

'創(chuàng)建新頭

headNew = headFirst '先拷貝一個(gè)頭過(guò)來(lái)

headNew.lngFileLen = headFirst.lngDataLenth + headNext.lngDataLenth + 37

'文件長(zhǎng)度等于兩個(gè)文件的數(shù)據(jù)長(zhǎng)度相加再加上頭的長(zhǎng)度,為什么是37呢?我也不明白!頭的總長(zhǎng)度是44,去掉4個(gè)字節(jié)的riff標(biāo)志和4個(gè)字節(jié)的文件長(zhǎng)度也應(yīng)該是36哇??墒悄愦蜷_(kāi)一個(gè)wav文件把文件長(zhǎng)度字段減去數(shù)據(jù)長(zhǎng)度字段,就是活見(jiàn)鬼的37。我想了好久總想不通最后妥協(xié)直接寫(xiě)了個(gè)37在這里!:(

headNew.lngDataLenth = headFirst.lngDataLenth + headNext.lngDataLenth

'數(shù)據(jù)段的長(zhǎng)度就是兩個(gè)文件的數(shù)據(jù)相加啦

'下面是文件操作,為了加快編碼速度減少腦細(xì)胞損傷,下面的代碼效率很低,大家自己優(yōu)化啦,如果直接用下面的代碼勸大家不要讀太大的文件,很夠嗆哦~~

'把兩個(gè)文件的數(shù)據(jù)讀出來(lái)??!

ReDim Data1(headFirst.lngDataLenth - 1)

'Open strFileName1 For Random As #1 Len = 1

Open strFileName1 For Binary As #1

For i = 0 To headFirst.lngDataLenth - 1

Get #1, 45 + i, Data1(i)

Next

Close #1

ReDim Data2(headNext.lngDataLenth - 1)

'Open strFileName2 For Random As #1 Len = 1

Open strFileName2 For Binary As #1 'Len = 1

For i = 0 To headNext.lngDataLenth - 1

Get #1, 45 + i, Data2(i)

Next

Close #1

'開(kāi)始寫(xiě)數(shù)據(jù)啦

'Open strOutFile For Random As #1 Len = 1

Open strOutFile For Binary As #1

Put #1, , headNew ' 將頭寫(xiě)入文件中。

'Close #1

'Open strOutFile For Random As #1 Len = 1

For i = 0 To UBound(Data1)

Put #1, 45 + i, Data1(i) ' 將第一個(gè)記錄寫(xiě)入文件中。

Next

For i = 0 To UBound(Data2)

Put #1, , Data2(i) ' 將第一個(gè)記錄寫(xiě)入文件中。

Next

Close #1 ' 關(guān)閉文件。

End Function

'合并兩個(gè)WAV聲音文件

Public Function WavMerge(Wave1() As Byte, Wave2() As Byte) As Variant

Dim xx As Long

Dim Y$

'1,確定data chunk的起始點(diǎn)(不同的WAV文件可能會(huì)不盡相同)

Do While Y$ "data"

Y$ = Chr(Wave1(xx)) Chr(Wave1(xx + 1)) Chr(Wave1(xx + 2)) Chr(Wave1(xx + 3))

xx = xx + 1

If xx 1000 Then

MsgBox "未知格式"

Exit Function

End If

Loop

Datapos1 = (xx - 1) + 8

xx = 0

Y$ = ""

Do While Y$ "data"

Y$ = Chr(Wave2(xx)) Chr(Wave2(xx + 1)) Chr(Wave2(xx + 2)) Chr(Wave2(xx + 3))

xx = xx + 1

If xx 1000 Then

MsgBox "未知格式"

Exit Function

End If

Loop

Datapos2 = (xx - 1) + 8

xx = 0

Y$ = ""

'2,確定第一個(gè)參數(shù)Wave1聲音中是否包含可選的fact chunk

factpos = 0

Do While Y$ "fact"

Y$ = Chr(Wave1(xx)) Chr(Wave1(xx + 1)) Chr(Wave1(xx + 2)) Chr(Wave1(xx + 3))

xx = xx + 1

If xx 1000 Then

xx = 0

Exit Do

End If

Loop

factpos = xx - 1

If factpos = -1 Then factpos = 36

DataLenOut = UBound(Wave1) + 1 - Datapos1 + UBound(Wave2) + 1 - Datapos2

ReDim WAVBuffer(factpos + 19 + DataLenOut)

'3,寫(xiě)入合并后的RIFF('wave'...fmt...[fact]...頭信息

RtlMoveMemory WAVBuffer(0), Wave1(0), factpos '注:采樣速率,平均數(shù)據(jù)速率,采樣大小,聲道以Wave1參數(shù)為準(zhǔn)

WAVBuffer(factpos) = Asc("f"): WAVBuffer(factpos + 1) = Asc("a")

WAVBuffer(factpos + 2) = Asc("c"): WAVBuffer(factpos + 3) = Asc("t")

ChunkLen = 4

RtlMoveMemory WAVBuffer(factpos + 4), ChunkLen, 4

RtlMoveMemory WAVBuffer(factpos + 8), DataLenOut, 4

WAVBuffer(factpos + 12) = Asc("d"): WAVBuffer(factpos + 13) = Asc("a")

WAVBuffer(factpos + 14) = Asc("t"): WAVBuffer(factpos + 15) = Asc("a")

RtlMoveMemory WAVBuffer(factpos + 16), DataLenOut, 4

'4,寫(xiě)入合并后的data chunk(即所有的samples,先Wave1,后Wave2)

RtlMoveMemory WAVBuffer(factpos + 20), Wave1(Datapos1), UBound(Wave1) - Datapos1 + 1

RtlMoveMemory WAVBuffer(factpos + 20 + UBound(Wave1) - Datapos1 + 1), Wave2(Datapos2), UBound(Wave2) - Datapos2 + 1

'5,更正RIFF頭信息

ChunkLen = UBound(WAVBuffer) - 7

RtlMoveMemory WAVBuffer(4), ChunkLen, 4

'6,結(jié)束

WavMerge = WAVBuffer

End Function

'合并多個(gè)文件

Public Function f_LinkWav(cFile As Collection, sOutFile As String) As Boolean

Dim headFirst As WaveHead

Dim headNext As WaveHead

Dim headNew As WaveHead '新文件的頭

Dim byteData() As Byte

Dim iFreeFile As Integer

Dim i As Long

Dim j As Long

Dim iA

Dim lData As Long

f_LinkWav = False

iFreeFile = FreeFile()

'獲取頭

headFirst = getWavHead(cFile(1))

lData = headFirst.lngDataLenth - 1

ReDim Preserve byteData(lData)

'Open strFileName1 For Random As #1 Len = 1

Open cFile(1) For Binary As #iFreeFile

For i = 0 To lData

Get #iFreeFile, 45 + i, byteData(i)

Next

Close #iFreeFile

headNew = headFirst

headNew.lngFileLen = headFirst.lngDataLenth

headNew.lngDataLenth = headFirst.lngDataLenth

For iA = 2 To cFile.Count

headNext = getWavHead(cFile(iA))

headNew.lngFileLen = headNew.lngFileLen + headNext.lngDataLenth + 37

headNew.lngDataLenth = headNew.lngDataLenth + headNext.lngDataLenth

ReDim Preserve byteData(lData + headNext.lngDataLenth)

Open cFile(iA) For Binary As #iFreeFile 'Len = 1

For i = 1 To headNext.lngDataLenth

Get #iFreeFile, 44 + i, byteData(lData + i)

Next

Close #iFreeFile

lData = lData + headNext.lngDataLenth

Next

'開(kāi)始寫(xiě)數(shù)據(jù)啦

'Open strOutFile For Random As #1 Len = 1

If Dir(sOutFile, vbNormal) "" Then Kill sOutFile

Open sOutFile For Random As #iFreeFile

Put #iFreeFile, , headNew ' 將頭寫(xiě)入文件中。

Close #iFreeFile

j = UBound(byteData) + 1

'For iA = 2 To giCalltimes

' ReDim Preserve byteData(UBound(byteData) + j)

' For i = 0 To j - 1

' byteData(j + i) = byteData(i) ' 將第一個(gè)記錄寫(xiě)入文件中。

' Next

'Next iA

Open sOutFile For Random As #iFreeFile Len = 1

For i = 0 To UBound(byteData)

Put #iFreeFile, 45 + i, byteData(i) ' 將第一個(gè)記錄寫(xiě)入文件中。

Next

' j = UBound(byteData)

'For iA = 2 To giCalltimes

' For i = 0 To UBound(byteData)

' Put #iFreeFile, 45 + i + j + 1, byteData(i) ' 將第一個(gè)記錄寫(xiě)入文件中。

' Next

' j = j + UBound(byteData)

'Next

Close #iFreeFile ' 關(guān)閉文件。

f_LinkWav = True

End Function

Public Function f_MciChkEnd()

Dim MCIStatus As String * 255

Dim lA

f_MciChkEnd = False

lA = mciSendString("status wav mode", MCIStatus, Len(MCIStatus), 0)

If UCase(Left$(MCIStatus, 7)) = "STOPPED" Or Left$(MCIStatus, 2) = "結(jié)束" Then f_MciChkEnd = True

End Function

Public Function SendComReturnString(com As String) As String

Dim FeedBack As Long, ReturnString As String * 255

ReturnString = String(255, Chr(0))

FeedBack = mciSendString(com, ReturnString, 255, 0)

If FeedBack Then

Dim s As String * 255

'mciGetErrorString FeedBack, s, 255

SendComReturnString = vbNullString

Else

SendComReturnString = Left(ReturnString, InStr(1, ReturnString, Chr(0)) - 1)

End If

End Function

VB.net如何加載音效?

方法一:調(diào)用系統(tǒng)DLL(這個(gè)有點(diǎn)不完善,也就是播放聲音時(shí)窗體無(wú)法控制,效果相當(dāng)于Enabled=true,但音頻播放完畢后就沒(méi)事了)

Private?Declare?Function?sndPlaySound?Lib?"Winmm.dll"?Alias?"sndPlaySoundA"?(ByVal?lpszSoundName?As?String,?ByVal?uFlags?As?Long)?As?Long

Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click

Dim?SoundFile?As?String,?Result?As?Long

SoundFile?=?"D:\KuGou\Pianoboy?-?第105天.wav"?'此處為路徑

Result?=?sndPlaySound(SoundFile,?0)

End?Sub

方法二:使用WindowsMediaPlayer(WindowsMediaPlayer1的可見(jiàn)為False)

先添加一個(gè)windowsmediaplayer控件(工具箱里沒(méi)有,需要手動(dòng)添加)

Private?Sub?Button1_Click(ByVal?sender?As?System.Object,?ByVal?e?As?System.EventArgs)?Handles?Button1.Click

WindowsMediaPlayer1.visible=False

Me.WindowsMediaPlayer1.URL?=?"D:\KuGou\Pianoboy?-?第105天.mp3"

End?Sub

上面的都是點(diǎn)擊button1(按鈕1)后播放聲音,若是鼠標(biāo)移動(dòng)到某控件上發(fā)出聲音的話改一下觸發(fā)事件就OK了。

本文題目:.netvb播放提示音的簡(jiǎn)單介紹
分享網(wǎng)址:http://chinadenli.net/article36/hpiopg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、用戶體驗(yàn)、微信小程序、電子商務(wù)、域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化