0

Salesforce CRM Content Documents を使用して、動画ファイルと外部動画リンク (YouTube 動画など) へのリンクの両方を保存したいと考えています。実際、私はすでに 2 つのコンテンツを投稿しました。1 つは実際の動画で、もう 1 つは YouTube 動画へのリンクです。それらにアクセスして Apex ページに表示するにはどうすればよいですか?

4

2 に答える 2

0

コードの一部を共有しています。これが役立つことを願っています

、、フィールドObjectを持つSF で 1 を作成します。YouTubevideoIDContentDocumentIdimgUrl

2 を持つクラスを作成します

public string link {get;set;}
public string tendingAction {get;set;}
public string link {get;set;}

3 このロジックでこれを入力します

public void updateActionAndImege(){
        if(this.YouTubevideoID!=null && this.YouTubevideoID!=''){
            this.tendingAction = 'loadVideo(\''+YouTubevideoID+'\');';
            this.link = 'https://youtube.com/watch?v='+YouTubevideoID;
        }
        if(this.ContentDocumentId!=null && this.ContentDocumentId!=''){
            this.tendingAction = 'OverlayDialogElement.showFilePreview(\'docViewerOverlay\',\'title_'+ContentDocumentId+'\',\'/_swf/121310/sfc\',\''+ContentDocumentId+'\',\'chatter_bubble\',\'false\',\'docViewerContainer\',false,\'docx\',false);';
            this.link = '/'+ContentDocumentId;
        }
        if(this.imgUrl==null || this.imgUrl==''){
            if(this.YouTubevideoID!=null && this.YouTubevideoID!=''){
                this.imgUrl = 'https://img.youtube.com/vi/'+YouTubevideoID+'/hqdefault.jpg';
                isYouTubeImg = true;    
            }
            if(this.ContentDocumentId!=null && this.ContentDocumentId!='')
                this.imgUrl = 'https://c.cs15.content.force.com/sfc/servlet.shepherd/version/renditionDownload?rendition=THUMB720BY480&versionId='+ContentDocumentId+'&operationContext=CHATTER';
        }

}

4 このクラスをページに表示

<img src="{!cl.imgUrl}" alt="Click to preview" class="contentThumbnail {!IF(cl.isYouTubeImg,'yt_thumb_small','')}" title="Click to preview" id="ext-gen4"/>
 <a class="view_m" href="javascript:{!cl.tendingAction}">View </a>

YouTube ロード用の 6 つの JS

 function loadVideo(videoID) {
        loadPopup();
        if(ytplayer) {
            ytplayer.loadVideoById(videoID);
        }
        else{
            loadPlayer(videoID);
        }
      }

      // This function is called when an error is thrown by the player
      function onPlayerError(errorCode) {
        alert("An error occured of type:" + errorCode);
      }

      // This function is automatically called by the player once it loads
      function onYouTubePlayerReady(playerId) {
        ytplayer = document.getElementById("ytPlayer");
        ytplayer.addEventListener("onError", "onPlayerError");
        centerPopup();
        ytplayer.playVideo();
      }

      // The "main method" of this sample. Called when someone clicks "Run".
      function loadPlayer(videoID) {
        // The video to load
        var videoID = videoID;
        // Lets Flash from another domain call JavaScript
        var params = { allowScriptAccess: "always" };
        // The element id of the Flash embed
        var atts = { id: "ytPlayer" };

        //var pageHeight =  $(window).height();
        var pageWidth =  $(window).width(); var tWidth; var tHeight;
        if(pageWidth <= 760) {tHeight = 278; tWidth = 440;}
        if(pageWidth > 760 && pageWidth <= 980){tHeight = 378; tWidth = 540;}  
        if(pageWidth > 980) {tHeight = 478; tWidth = 640;}
        // All of the magic handled by SWFObject (http://code.google.com/p/swfobject/)

        swfobject.embedSWF("https://www.youtube.com/v/" + videoID + 
                           "?version=3&enablejsapi=1&playerapiid=player1", 
                           "videoDiv", tWidth, tHeight, "9", null, null, params, atts);
      }
于 2013-06-20T05:55:18.520 に答える
0

ガバナーの制限を回避するために、この方法で呼び出す必要がある場合があります

[NAME].force.com/sfc/servlet.shepherd/version/download/[CONTENTVERSIONID]

これを機能させるには、追加の構成が必要になる場合もあります。次のリンクを参照してください。

ContentVersion をダウンロード可能にする

于 2014-07-18T13:29:11.583 に答える