Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Text Tracks are not shown on mobile during recording #626

Open
benhartwich opened this issue Dec 2, 2021 · 0 comments
Open

Text Tracks are not shown on mobile during recording #626

benhartwich opened this issue Dec 2, 2021 · 0 comments
Labels

Comments

@benhartwich
Copy link

benhartwich commented Dec 2, 2021

Hi,

I want to display text tracks during recording and it is working at desktop browsers, but not on mobile ones. On mobile browsers like chrome or safari text tracks are only shown, when playing the recorded video. I am searching for hours, but I don´t find any hint, what could be the problem.

Would be really great to have a hint from somebody!

My implementation:

<script>   
var options = {
    controls: true,
    controlBar: {
        fullscreenToggle: false,
        volumePanel: false,
        nativeControlsForTouch: true
    },
    tracks: [{src: 'playback.vtt', kind:'captions', srclang: 'de', Label:'Song', default: 'true' }],
    textTrackSettings: false,
    width: 1080,
    height: 1920,
    fluid: true,
    aspectRatio: '9:16',
    plugins: {
        record: {
            audio: true,
            video: {
                width: { min: 640, ideal: 640, max: 1280 },
                height: { min: 480, ideal: 480, max: 920 }
            },
            frameWidth: 1280,
            frameHeight: 920,
            maxLength: 120,
            debug: false,
            audioMimeType: 'audio/ogg',
            audioBitRate: 320,
            videoBitRate: 7000,
            videoMimeType: 'video/webm;codecs=vp8'
        }
    }
};
   
//initialize playback
    var sound = new Howl({
      src: ['playback.mp3'],
      volume: 0.5,
      onend: function () {
      }
    });

// apply some workarounds for opera browser
applyVideoWorkaround();

var player = videojs('myVideo', options, function() {
    // print version information at startup
    var msg = 'Using video.js ' + videojs.VERSION +
        ' with videojs-record ' + videojs.getPluginVersion('record') +
        ' and recordrtc ' + RecordRTC.version;
    videojs.log(msg);
});

var tracks = player.textTracks();
  
function showTexttracks() {
           for (var i = 0; i < tracks.length; i++) {
          var track = tracks[i];

          if (track.kind === 'captions') {
              track.mode = 'showing';
              console.log(track.mode);
          }
      }
   }
// error handling
player.on('deviceError', function() {
    console.log('device error:', player.deviceErrorCode);
});

player.on('error', function(element, error) {
    console.error(error);
    // handle selection changes
});

// user clicked the record button and started recording
player.on('startRecord', function() {
    console.log('started recording!');
    console.log(options);
    sound.play(); 
    showTexttracks();
});

var videoFile; 

// user completed recording and stream is available
player.on('finishRecord', async function() {
    // the blob object contains the recorded data that
    // can be downloaded by the user, stored on server etc.
    console.log('finished recording: ');
    sound.stop();
    var videoFile = player.recordedData;
    player.src({type:'video/mp4', src: URL.createObjectURL(player.recordedData)});
    player.record().saveAs({'video': 'song.mp4'});
 
  }); 
 

</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants