class DroidAdbs::ScreenRecord::Recording

Attributes

bit_rate[RW]
file_name[RW]
recording[RW]
size[RW]

Public Class Methods

new(device_serial: nil, bit_rate: 3000000, size: "1280x720", time_limit: 180) click to toggle source
# File lib/droid_adbs/commons/record.rb, line 12
def initialize(device_serial: nil, bit_rate: 3000000, size: "1280x720", time_limit: 180)
  @bit_rate = bit_rate
  @size = size
  @time_limit = time_limit

  ::DroidAdbs.device_serial = device_serial if device_serial
  @recording = false
end

Public Instance Methods

delete() click to toggle source
# File lib/droid_adbs/commons/record.rb, line 44
def delete
  # Delete the video from the device
  system "#{::DroidAdbs.shell} rm /sdcard/#{@file_name}.mp4"
end
pull(export_to: " click to toggle source
# File lib/droid_adbs/commons/record.rb, line 39
def pull(export_to: "#{Dir.pwd}/droid_adbs_video.mp4")
  # Download the video
  system "#{::DroidAdbs.adb_serial} pull /sdcard/#{@file_name}.mp4 #{export_to}"
end
start(file_name: "droid_adbs_video") click to toggle source
# File lib/droid_adbs/commons/record.rb, line 21
def start(file_name: "droid_adbs_video")
  validate_recordable?
  raise "Recording on the other process" if @recording

  @file_name = file_name

  @recording = true
  @process_id = fork do
    exec "#{::DroidAdbs.shell} screenrecord --time-limit #{@time_limit} --bit-rate #{@bit_rate} --size #{@size} /sdcard/#{@file_name}.mp4"
  end
end
stop() click to toggle source
# File lib/droid_adbs/commons/record.rb, line 33
def stop
  validate_recordable?
  Process.kill(:SIGINT, @process_id)
  @recording = false
end

Private Instance Methods

validate_recordable?() click to toggle source
# File lib/droid_adbs/commons/record.rb, line 51
def validate_recordable?
  unless ::DroidAdbs::Devices.device_build_version_sdk.to_i >= 19
    raise "The command require over KitKat(API Level 19)"
  end

  true
end