Guest User

Untitled

a guest
Jun 20th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. <template>
  2. <v-toolbar dark>
  3. <v-btn icon @click="pickAudio">
  4. <v-icon>library_music</v-icon>
  5. </v-btn>
  6. <v-btn icon v-if="file.isAvailable && !isPlaying" @click="play">
  7. <v-icon>play_arrow</v-icon>
  8. </v-btn>
  9. <v-btn icon v-else-if="file.isAvailable && isPlaying" @click="pause">
  10. <v-icon>pause</v-icon>
  11. </v-btn>
  12. <v-toolbar-title>{{ file.displayName }} - {{file.displayType}}</v-toolbar-title>
  13. </v-toolbar>
  14.  
  15. </template>
  16. <script>
  17. export default {
  18. name: 'UwpMediaToolbar',
  19. data() {
  20. return {
  21. isPlaying: false,
  22. file: {
  23. displayName: "Choose a File",
  24. displayType: 'Click on the left button',
  25. isAvailable: false
  26. },
  27. mediaSource: null,
  28. player: null,
  29. picker: null
  30. }
  31. },
  32. beforeMount() {
  33. this.player = new Windows.Media.Playback.MediaPlayer();
  34. this.player.onmediaended = this.resetControls.bind(this)
  35. this.picker = new Windows.Storage.Pickers.FileOpenPicker();
  36. this.picker.viewMode = Windows.Storage.Pickers.PickerViewMode.thumbnail;
  37. this.picker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.musicLibrary;
  38. this.picker.fileTypeFilter.replaceAll([".mp3"]);
  39. },
  40. methods: {
  41. async pickAudio() {
  42. try {
  43. const file = await this.picker.pickSingleFileAsync();
  44. if (file) { this.file = file }
  45. console.log(file);
  46. } catch (e) {
  47. console.error(e);
  48. }
  49. },
  50. play() {
  51. if (!this.player || !this.player.source || !this.mediaSource) {
  52. this.mediaSource = Windows.Media.Core.MediaSource.createFromStorageFile(this.file);
  53. this.player.source = this.mediaSource;
  54. }
  55. this.player.play();
  56. this.isPlaying = true
  57. },
  58. pause() {
  59. this.player.pause();
  60. this.isPlaying = false;
  61. },
  62. resetControls() {
  63. this.isPlaying = false;
  64. }
  65. }
  66. }
  67. </script>
  68. <style></style>
Add Comment
Please, Sign In to add comment