{
if (!this.player) return;
this.time = this.player.currentTime;
if (!this.player.paused) {
setTimeout(updateTimeFn, this.interval);
}
};
setTimeout(updateTimeFn, this.interval);
gtag('event', 'audio_start', {
'audio_title': '#565 新しい習慣を始める前に、まず何かを\"終わらせる\"べき理由',
'audio_url': 'https://listen.style/p/mamo_thinker/00khj7e2',
'audio_current_time': this.time
});
});
this.player.addEventListener('timeupdate', () => {
this.updateProgressBar();
if (this.hasPlayed && Math.floor(this.time / 30) != Math.floor(this.lastPosition / 30)) {
this.updatePosition();
}
// 95%以上再生で完了リクエスト送信
if (this.player.duration > 0 && this.time > (this.player.duration * 0.95) && !this.completedSent) {
this.completedSent = true;
this.updatePosition();
}
// 巻き戻しリセット
if (this.player.duration > 0 && this.time < (this.player.duration * 0.9)) {
this.completedSent = false;
}
});
this.player.addEventListener('pause', () => {
this.playing = false;
if (this.hasPlayed) {
this.updatePosition();
}
});
window.addEventListener('beforeunload', () => {
if (this.player && !this.player.paused) this.updatePosition();
});
this.player.addEventListener('ratechange', () => {
this.updatePlaybackRate();
});
this.player.addEventListener('loadeddata', () => {
if (this._loadeddataTriggered) return;
this._loadeddataTriggered = true;
this.player.currentTime = this.time;
this.lastPosition = this.time;
this.player.playbackRate = this.speed;
}, { once: true });
},
playEpisode(start) {
// console.log('play', this.time);
if ((start <= this.player.currentTime) && (this.player.currentTime <= (start + 5))) {
if (this.player.paused) {
this.player.play();
}
return;
}
this.time = start;
this.player.currentTime = this.time;
this.player.play();
// console.log(this.time);
},
togglePlay() {
this.player.paused ? this.player.play() : this.player.pause();
},
updatePosition() {
this.lastPosition = this.time;
fetch('https://listen.style/p/01hztwvhzm2vx83qjdp6srhzr6/01j8rbjt0ddf6zrfkjcyn9m496/update_position', {
method: 'POST',
body: JSON.stringify({ time: this.time }),
headers: { 'Content-Type': 'application/json','X-CSRF-TOKEN': 'vECa4pRE0gThpnflFgPLo6aoc0LFGNrsxP4Bkm7S'}
});
},
updatePlaybackRate() {
fetch('https://listen.style/update_playback_rate', {
method: 'POST',
body: JSON.stringify({ rate: this.player.playbackRate }),
headers: { 'Content-Type': 'application/json','X-CSRF-TOKEN': 'vECa4pRE0gThpnflFgPLo6aoc0LFGNrsxP4Bkm7S'}
});
},
updateTime(t) {
if (t < 0) {
t = 0;
} else if (this.player.duration < t) {
t = Math.max(this.player.duration - 3, 0);
}
this.time = t;
this.player.currentTime = t;
this.updateProgressBar();
},
updateProgressBar(percent) {
if (!percent) {
percent = this.time * 100 / this.player.duration;
}
if (this.progressBar) {
this.progressBar.style.width = percent + '%';
this.progressBar.parentElement.setAttribute('aria-valuenow', Math.floor(percent));
}
},
setupKeyboardShortcuts() {
document.addEventListener('keydown', (event) => {
const playerElement = document.activeElement.tagName === 'INPUT' || document.activeElement.tagName === 'TEXTAREA' || document.activeElement.isContentEditable;
if (playerElement) return; // Ignore key events when input or textarea is focused
const shiftNotAllowedShortcuts = ['Space', 'KeyK', 'KeyM', 'ArrowLeft', 'ArrowRight', 'KeyJ', 'KeyL', 'KeyS', 'ArrowUp', 'ArrowDown'];
if (shiftNotAllowedShortcuts.includes(event.code) && event.shiftKey) {
// If shift is pressed and the shortcut should not allow shift, return
return;
}
switch (event.code) {
case 'Space':
case 'KeyK':
event.preventDefault();
this.togglePlay();
break;
case 'KeyM':
event.preventDefault();
this.player.muted = !this.player.muted;
break;
case 'ArrowLeft':
event.preventDefault();
this.updateTime(this.time - 5);
break;
case 'ArrowRight':
event.preventDefault();
this.updateTime(this.time + 5);
break;
case 'KeyJ':
event.preventDefault();
this.updateTime(this.time - 10);
break;
case 'KeyL':
event.preventDefault();
this.updateTime(this.time + 10);
break;
case 'KeyS':
event.preventDefault();
this.addStar();
break;
case 'Period': // >
event.preventDefault();
if (event.shiftKey) {
this.speed = Math.min(Math.max(parseFloat(this.speed) + 0.1, 0.5), 4.0);
this.speed = parseFloat(this.speed);
this.player.playbackRate = this.speed;
}
break;
case 'Comma': // <
event.preventDefault();
if (event.shiftKey) {
this.speed = Math.min(Math.max(parseFloat(this.speed) - 0.1, 0.5), 4.0);
this.speed = parseFloat(this.speed);
this.player.playbackRate = this.speed;
}
break;
case 'ArrowUp':
event.preventDefault();
this.changeVolume(parseFloat(this.volume) + 0.05);
break;
case 'ArrowDown':
event.preventDefault();
this.changeVolume(parseFloat(this.volume) - 0.05);
break;
default:
break;
}
});
},
changeVolume(volume) {
if (this.player && (volume >= 0 && volume <= 1)) {
this.volume = volume;
this.player.volume = this.volume;
}
}
}" x-init="
window.addEventListener('notify', event => {
showNotification(event.detail.message);
});
window.addEventListener('replace-text', event => {
replaceText(event.detail.searchString, event.detail.replacementString);
});
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
if (mediaQuery.matches) {
document.documentElement.classList.add('dark');
}
setupKeyboardShortcuts();
">
00:05
はい、マモです。いかがお過ごしでしょうか。今回は、何を始めるかよりも、何を終わらせるかを考えた方がいいというテーマで話をしていきます。
これを聞いているあなたは、もしかしたら、人生をより良くするための習慣を取り入れたいと考えているのではないでしょうか。
例えば、英語の勉強を始めようとか、運動習慣をつけようとかですね。
ただ、だいたい何日かすると、続けるのが難しくなってしまうなんてことはありませんか。
過去の私、今もなんですけれども、正直これを取り入れようといった習慣が、何かいつの間にやらしなくなってしまうということもあるんですよね。
最近始めたことで言うと、運動習慣なわけなんですが、これだいたい1ヶ月近くは続いております。
ただ、この先続くかというのは正直何とも言えません。
このような習慣を作るぞと、より良い習慣を取り入れようと思った時に、多くの方、これまでの自分も含み、始めることばかりに着目しがちなんですけれども、
その前に何を終わらせるか、やめるかっていうのを考えた方がいいと思います。
これは私の考えというよりは、先日Xにて独立研究者の山口周さんがこのような内容をツイートしており、本当にその通りだなと思ったので、こちらでお話をさせていただいております。
人間、誰しも平等なのが時間ですね。
どんな人、偉大な経営者だろうが、私のようなポンコツな人間だろうが、これを聞いているあなたにも共通して言えることは、1日24時間しかないということです。
ただれさえ仕事や、もしかしたら家事、子育て含みで多忙な中、時間というのはあまりないと思うんですよね、プラスアラファーで。
で、あれもこれも正直習慣を取り入れられないとなると、何かを削るしかないわけですね。
で、だいたい習慣が身につけない最大の理由は、時間の確保だと思います。
なので、不要なものをまず削る、やめる、終わらせるというアプローチからして、それを削れたら新しい習慣を取り入れるというのが正しい流れかなというふうに私は考えております。
03:16
とはいえ、なかなか時間を削れない、作れないという方には、とある疑問を持ってほしいんですよね。
まずは自分自身を俯瞰した時に、この時間いるかなとか、これやってる意味あるのかな、この時間何なの、みたいな思う時あるはずなんですよ。
代表例がSNSの閲覧だと思います。
私は今となっては、SNSを眺める時間というのは、せいぜい1日15分ぐらいですね。日によっては全く覗かないということもあります。
複数のSNSを見るわけではなく、基本Xしか見ないです。しかもお勧めで流れてくるものというよりは、特定の方のツイートのみを見るようにしております。
正直見始めたらキリがなくて、あっという間に時間が経つなんてことザラにありますからね。
で、じゃあ結局得たもの何かというと、特になく印象に残ったツイートもなくダラダラ見てて、いつの間にかに30分経ってるなんてことを過去にありました。
で、そういう時思うんですよね。あのこの時間は何だったんだろうと、何も得てないじゃないか。
しかもビジネスで成功している人のツイートばかり見てると、そんな方々と自分を比較してテンション下がって気持ちが下がるんですよね。
あとインスタグラムとかであれば華やかな動画や画像が流れてくるわけなので、自分は一人ぼっちで見てるわけでテンション下がりますよね。
SNSのやつなんてあまり良いことないと思うんですよね。そういった時間を削るんですね。
あとは飲み会とかですかね。私は幸いシフト制の仕事をしているので、同僚と同じ曜日時間に仕事が終わる。
そこから飲み行こうという流れになりにくいんですよね。それは幸いのことなんですけれども。
過去の前の仕事とか前の前の仕事とかっていうのは割かしみんなで飲みに行くみたいな雰囲気あったんですけれども、途中で辞めましたね。
というのもなんかあんまり意味ないなと。充実感そんなないぞってなったのでそういったものを削りました。
削ったからといって職場の人間関係を悪くなったなんてことはないんですよね。
あいつはそういうキャラだというキャラ好きにもなったので、むしろ良かったかなというふうに思います。
06:05
このように1日は24時間しかない。睡眠時間をざっくり8時間とすると16時間しかない。
さらに仕事が8時間から10時間あれば残りは8時間から6時間ぐらいしかないわけなので、あれもこれもは始められない。
良い習慣っていうのはいくらでもあるけれども全部は始められないんですよね。
となると何をやらないか、削るか終わらせるかっていうのを考えた方がいい。
そのためにはこの時間いるのかな?この活動で自分を充実させてくれるのかな?
というような疑問、視点を持つことで何を削るべきなのか終わらせるべきなのかというのがわかるのではないでしょうか。
参考になれば嬉しいです。最後までお聞きいただきありがとうございました。それでは良い一日をお過ごしください。
07:07
コメント
スクロール