2018年12月19日 星期三

QRCode開啟FB應用程式app的各種方式筆記

常遇到一種需求:可不可以讓使用者用QRCode掃描後可以連結到FB的粉專頁?

簡單的方式就是把FB的粉專的那串連結 (例如:https://www.facebook.com/MusicaPercussion/ )
直接拿去產生QRCode

不過有個問題是,以android為例子,這個掃出來的結果是會用瀏覽器打開,如果是我的話
看到這種的除非是很有興趣,不然就直接離開了,因為很不人性化!(最近測試 iOS 似乎沒這個問題,會詢問是否用fb app開啟)

為了人性化一點,有個解決方案是,先製做一個網頁,裡面用java script 抓取 navigator.userAgent 判斷是使用者是什麼裝置(PC, Android,iOS),提供 二個選項 給使用者自行決定:

1)使用 app 應用程式開啟
2)使用瀏灠器開啟(確保沒有安裝app時仍可開啟)


不同裝置開啟 fb 應用程式的方式如下:
  • iOS

fb://page/?id=<粉專ID>

範例:請使用iPhone點我測試

fb://event/?id=<活動頁ID>

範例:請使用iPhone點我測試

https://www.facebook.com/<粉專ID_或粉專代號>/posts/<貼文ID>

範例:請使用iPhone點我測試


(經過實機測試上面第三個方式不論是活動頁、粉專首頁、貼文…等,只要直接使用https://www.facebook.com/........
這種方式的連結iOS都會跳出對話框詢問是否以 fb app打開,因此這個方式是似乎是最通用的)


  • Android
fb://page/<粉專ID>

範例:請使用Android點我測試

fb://event/<活動頁ID>

範例:請使用Android點我測試


fb://facewebmodal/f?href=https://www.facebook.com/<粉專ID_或粉專代號>/posts/<貼文ID>

(這個應該可以應用在活動頁、粉專首頁、貼文…等。不過如果是比較舊的fb app 有可能無法使用此功能,fb app 版本號3002850 後的才有這個功能 )

範例:請使用Android點我測試

  • Web瀏覽器
瀏覽器的話就和fb網頁上的網址一樣

https://facebook.com/<粉專ID>

https://facebook.com/events/<活動頁ID>

https://www.facebook.com/<粉專ID_或粉專代號>/posts/<貼文ID>


SmartQuery安裝設定問題排除-Error:PAM004:產生Foreign Key Data...

Error:PAM004:產生Foreign Key Data時...統計類型

Database connection error:ERROR 
[IM014] [Microsoft][ODBC 驅動程式管理員] 指定之 DSN 中的驅動程式和應用程式架構不相符, ODBC Driver XXXX
is not accessible for user:IIS APPPOOL\DefaultAppPool, please create and use 
System DSN not User DSN

原因:
    Win7 64-bit下使用32-bit的ODBC:


SmartQuery安裝設定問題排除-HTTP 錯誤 500.21 - Internal Server Error

HTTP 錯誤 500.21 - Internal Server Error
處理常式 "PageHandlerFactory-Integrated" 的模組清單中有錯誤的模組 "ManagedPipelineHandler"


問題排除:


設定完再檢查一次就ok啦~


SmartQuery安裝設定問題排除-權限問題無法瀏灠檔案

若執行SmartQuery網頁,出現權限無法瀏灠檔案:
Error:Xml File lock error:C:\Inetpub\WWWRoot\Smart-Query\Data\SecForm.xml, File Name:C:\Inetpub\WWWRoot\Smart-Query\Data\SecForm.xml, 於 lc001p.XMLCache.SyncXMLElement(String cFile) 於 \\tsclient\C\Works\Smart-Query\lc001p\XmlCache.vb: 行 44 於 lc001p.XMLClass.LoadElement(String cFile, String cPath, Boolean lCache) 於 \\tsclient\C\Works\Smart-Query\lc001p\XMLClass.vb: 行 249 於 lc001p.lc001.GetAuthProjects(String& Names, String& Captions, Boolean lAuth, Boolean lAddeSign) 於 \\tsclient\C\Works\Smart-Query\lc001p\lc001.vb: 行 2252 於 lc001p.lc001.CheckLogin(String cPath, String _cCompany, String USERID, String PASSWORD, String cFile, String cSessionID, String cClientIP, Boolean lNeedPassWord, Boolean lGenMenu, Boolean lGenXml, String& cXML, Boolean lWinAD, Boolean lWithSystem, Boolean leSign, Boolean lMobile) 於 \\tsclient\C\Works\Smart-Query\lc001p\lc001.vb: 行 1228


確認以下資料夾是否將SYSTEM, NETWORK SERVICE的權限加入,若還是不行開啟everyone權限。
C:\Program Files (x86)\Smart-Query
C:\inetpub\wwwroot\Smart-Query






建議以下設定,執行上會較順:





2018年11月19日 星期一

Win 7 IE 點選excel 連結檔時預設使用Office Excel開啟


有民眾反應用IE 點選excel連結檔時 excel都會嵌在 IE裡,沒有預設使用Office Excel開啟


解決方式:可下載Microsoft的修正檔


2018年11月15日 星期四

[ffmpeg]如何將多筆mp3音樂檔轉成mp4影片檔上傳到Youtube?


身邊有一些音樂檔想放上雲端,隨時想聽就可以聽,
本來想用Google雲端備份,但Google雲端空間只有15G,
音樂檔太多很容易就塞滿了....又不想花錢買額外空間

後來腦筋就動到Youtube來啦~

不過...Yotube只可以上傳影片檔,聲音檔無法耶...怎麼辦?

只要將音樂檔 加上圖片做成影片檔,這樣不就可以上傳到Youtube了!

要怎麼把音樂檔合併圖片為影片檔呢?
網路上有一些Online Convert,只要上傳音樂檔案 + 圖片檔就可以幫你轉換成影片檔了,
還有整批批次幫你製作的功能咧~

不過...要我把一些私藏的音樂傳到別人的伺服器,感覺就像是把檔案送他一樣,這種事我無法接受...
( 雖然上傳到youtube也是有同樣的隱憂,但是至少人家是大公司,對於資料的保護上會比較完善。)

所以最好的方式是單機版的方式囉!
找了一下解決方案,很多單機版都是要錢錢的....恩...這年頭萬事都要省...

後來找到 FFmpeg
Wiki: FFmpeg 是一個自由軟體,可以執行音訊和視訊多種格式的錄影、轉檔、串流功能。

嗯!不錯耶,就用這個吧,只不過這須要以下指令的方式跑,感覺比較不"友善"一點
不過,沒關系,把要用的指令找出來後,以後就依樣畫葫蘆,也不會麻煩到哪裡。

因為是要備份音樂CD中的檔案,搭配 excel 可以簡單的做到多筆檔案的批次轉換的功能,也不用花時間自已寫一個小工具。

有須要的可以 下載我做的範例檔 批次mp3轉mp4範例.7z 來參考



照著以下步驟做就可以順利轉檔囉

(1)備好一張圖檔 (圖檔必須是2的倍數,不然轉檔會失敗唷!)
     範例中是 img.jpg

(2)要轉檔的音樂檔( 多筆的話請批次命名讓檔名是以序號結尾,方便excel公式套用)
     範例中用 music 01.mp3, music 02.mp3 二個檔案來示範
     如果檔名是不規則的,可以透過 dir指命把檔名匯出,指命如下
      dir *.mp3 /b > filename.txt

(3)開啟"產生指令.xls" 把所須的資訊填入
     如下黃色區塊,把你的圖檔、音樂檔及要輸出的檔名等資訊填一,
     最後在 I 欄 會依公式串出 所須的指令,再將這些指令複制起來


(4)用"筆記本"開啟 convert.bat 將步驟(3)的指令複制起來貼上後存檔



(5)在DOS 命令列上執行 convert.bat 開始進行轉檔

(6)轉檔結束後在目錄中會出現二個 mp4的檔案,打開來看看是不是成功轉檔啦~




這邊使用到的FFmpeg指令範例說明如下:

ffmpeg -loop 1 -i "img.jpg" -i "sound.mp3" -c:v libx264 -tune stillimage -c:a aac -b:a 192k -pix_fmt yuv420p -shortest "result.mp4"

使用到的指令參數說明如下:( 更多詳細的參數選項可參考ffmpeg官網文件 )

  • -i    輸入的檔名

          我們有 圖片檔 、音樂檔 這二個輸入 img.jpg,  sound.mp3

  • -loop 是否重覆,0/1 表示 否/是

         我們使用一張圖檔,所以設定 -loop 1,讓這張圖每分每秒都重複加上

  • -pix_fmts 顯示可用的像素格式 RGB, YUV ...等

         這邊我們使用的是 yuv420p

  • -shortest 當最短的輸入串流結束後立即完成編碼

         因為有設 -loop 1,會一直無限的循環,所以使用這個參數,當音樂檔串流結束,就完成編碼,否則會一直編碼下去,永遠都出不出啦..........

聲音相關參數

  • -b:a  設定每Channel的流量

          我們設定為 192kbps

  • -c:a  設定聲音編解碼器

          我們使用aac

影像相關參數

  • -c:v  設定影像影像編解碼器
          libx264 表示轉檔為 H.264 格式



  • -tune FFmpeg X264的參數,主要配合影像類型和視覺優化的參數,stillimage 表示靜態圖編碼時使用
補充:
     如果聲音檔太長,也可以用ffmpeg 剪短一點,語法範例如下:
ffmpeg -ss 3 -t 60 -i inputfile.mp3 -acodec copy outputfile.mp3

-ss : 表示從第幾秒開始
-t: 表示最終剪裁完後的長度(例如 60秒)

2018年5月9日 星期三

MuseScore 2 如何刪除同線譜中的聲部


當同一線譜中有多個聲部時 (如下圖 有二個聲部)


選取小節時全部的聲部都會被選取到 (如下圖所示)


要只刪除或選擇某特定聲部的方式:


(1) 開啟"Selection Filter" 面板 ( View -> Selection Filter )


(2)在Selection Filter 中只勾選想要刪除的聲部


(3)選取要刪除的小節,可看到這次只選到其中一聲部而已


(4)刪除後記得把 Selection Filter中勾選 All,否則之後在編輯時只能編輯所勾選的聲部唷!


參考: