GithubHelp home page GithubHelp logo

buildcast's Introduction

topic languages products
sample
csharp
windows
windows-uwp

BuildCast Video Player UWP Sample

BuildCast is an end-to-end sample built to showcase the Microsoft Fluent Design System as well as other capabilities of the Universal Windows Platform. It permits browsing, downloading and playback of select video podcasts including a sampling of the most popular ones from Channel 9 as well as some popular Windows tech enthusiast feeds. It has other features such as ink notes, bookmarks and remote playback. This sample was initially shown and discussed at the 2017 Build conference during the Build Amazing Apps with Fluent Design talk.

Features

At a high level this sample demonstrates usage of:

  • Fluent design system (Acrylic material, Reveal highlight, Connected animations, ParallaxView, an Adobe XD UX Prototype etc)
  • XAML controls and features (NavigationView, swipe commanding, context menu with icons and SVG assets, LoadedImageService, conditional XAML etc)
  • Media playback including picture-in-picture and fullscreen views
  • Inking and smart ink
  • Project Rome and AppServices
  • Background download service, Entity Framework and SQLite
  • Windows composition APIs (InteractionTracker, implicit animations, scene lighting)
  • Notifications with progress bar
  • Share contract

Run the sample

Prepare your environment

This sample requires Visual Studio 2017 with Update 5 and the Windows 10 Software Development Kit (SDK) version 16299, Windows 10 OS - Fall Creators Update.

Additionally, to receive the latest updates to Windows and the development tools, and to help shape their development, join the Windows Insider Program.

Run

After opening the Visual Studio solution, set your startup project as BuildCast, the architecture to AMD64 or x86, and press F5 to run.

Code at a glance

The table below shows the platform features used in the application and where abouts to find them in the sample.

Release Notes Update 1 October 2017

  • Add the Adobe XD UX prototype file
  • Add back Spectrum Analyzer visualization to now playing
  • On startup, app will check for cached media changes at filesystem level and update database state to match this
  • Improved commanding on favorites, downloads, notes
  • Design tweaks
  • Known issues where there will be code changes have all been moved to issues on github
  • Bug fixes

Known Issues

  • Download progress reported via toasts / action center will not update when the app quits, even though the download will proceed using background transfer service. This is due to a known platform gap
  • Deploying / running BuildCast on a XBOX will result in the app crashing due to a platform bug that is being investigated. More details here.
  • A number of warnings have not been addressed
  • Things that didn't make it from the Build talk:
    • TreeView control: did not ship in the final Fall Creator's update
    • 360 video playback: this will come in a future update to the app

App details

Frameworks

Framework Usage Code file
Entity framework ORM to store objects in SQLite LocalStorageContext.cs
SQLite in UWP Primary mechanism for persistence N/A
.NET Standard 2.0 Provides System.Tuple NowPlayingState.cs

App features

App feature Description Code file
Adobe XD UX Prototype Acrylic material image BuildCast.xd
Acrylic material Acrylic material usage
Acrylic material image
Branded.xaml
Reveal highlight Reveal highlight usage
Reveal highlight image
CustomMTC.xaml
NavigationView NavigationView usage
NavigationView image
NavigationRoot.xaml
Connected animations Used in connected transitions between pages FeedDetails.xaml.cs
Inking Ink annotation on video frame
Ink annotation image
InkNote.xaml.cs
Smart Ink Recognize and convert images to glyphs and emoji
Ink recognition image
2nd ink recognition image
InkNote.xaml.cs
Emoji picker Select emoji
Emoji picker image
InkNote.xaml.cs
Context menus with icons Context menus with icons
Context menus image
FeedDetails.xaml
Swipe commanding Swipe controls on lists
swipe image
FeedDetails.xaml
Mnemonics/Access Keys Mnemonics usage
Mnenomics image
EpisodeDetails.xaml
Command bar Command bar usage
Command bar image
Player.xaml
Coordinated animations Used in connected transitions between pages FeedDetails.xaml.cs
Conditional XAML NavigationView loads based on OS version support NavigationRoot.xaml
SVG BuildCast logo on homepage Home.xaml
Adaptive state triggers UI optimizations for assorted screen sizes
Adaptive layout image
Home.xaml
ParallaxView Home screen parallax layout
ParallaxView image
Home.xaml
Lighting Buffering animation BufferingVisualManager.cs
Interaction tracker Interaction tracker
Interaction tracker image
Timeline.cs
Layout animations Layout animations Home.xaml.cs
LoadedImageSurface Composition Surface for Images CustomMediaPlayer.xaml.cs
Composition expression language Timeline animations Timeline.cs
Implicit animations Poster frame fade out when video starts playing VisualHelpers.cs
Compact overlay mode Picture-in-picture support
Virtual surfaces image
ViewModeService.cs
Spectrum Analyzer Realtime visualization of audio spectra for currently playing clip
Full screen mode image
player.xaml.cs
Full screen mode Full screen mode for video
Full screen mode image
ViewModeService.cs
Share contract Share the annotated frame
Share contract image
InkNote.xaml.cs
Background transfer service Video download for offline viewing BackgroundDownloadHelper.cs
BTS toast completion notifications Toast display upon background download completion
Background completion image
BackgroundDownloadHelper.cs
Toast progress bars Visual download progress indicator
Toast progress image
BackgroundDownloadHelper.cs
App services Support Rome based remote control RemotePlayService.cs
Media Composition API Extract frame for Ink annotations from local file PlayerService.cs
Template studio Theming, settings model
Settings image

Contributing

While we expect to at a later date, this project is not currently accepting contributions. For now, if you have any feedback or questions, please open an Issue on GitHub for the team.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments

Copyright © Microsoft Corporation. All rights reserved. This program/project is and its use is subject to the MIT License

buildcast's People

Contributors

clarkezone avatar karlerickson avatar microsoft-github-policy-service[bot] avatar microsoftopensource avatar msftgits avatar nmetulev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

buildcast's Issues

Source code missing

Where's the source code? It's been MONTHS and yet the source code hasn't been uploaded yet. When will it be uploaded?

Unable to build because of PlaybackSource and IVisualizer

Despite doing everything that pertains to this project I can't seem to build because of the player. I have UWPAudioVisualizer nuget installed but it seems its is lacking some classes required in the player

Error CS1729 'PlaybackSource' does not contain a constructor that takes 1 arguments BuildCast D:\CSharp\PlayGround\BuildCast\src\BuildCast\Services\PlayerService.cs
Error CS0234 The type or namespace name 'IVisualizer' does not exist in the namespace 'AudioVisualizer' (are you missing an assembly reference?) BuildCast D:\CSharp\PlayGround\BuildCast\src\BuildCast\Views\Player.xaml.cs

IntelliSense Failure

I've never loaded a UWP source application before this. But when I load this up into Visual Studio, I get this message:

[Failure] Could not find file 'C:\Users\Me\Desktop\BuildCast-master\BuildCast-master\src\BuildCast\obj\ARM\Debug\App.g.i.cs'.

It does have 'App.g.cs' in the target directory. Is this supposed to be the same file? It is not there before I load the project into Visual Studio.

Glyphs recognized via smart ink are not persisted

BLOCKED: this requires the datamodel update before can be tackled.
Only ink strokes are preserved in ink notes, glyphs recognized via smart ink are not currently persisted. Work here is to

  • Update datebase schema to support collection of XAML overlays by adding size, position, glyph
  • Save: iterate over all added glyphs added within xamloverlay canvas and save size, position, which glyph
  • Load: query database for glyphs, add them to the xamloverlay canvas when ink note is loaded

Not loading new episodes

This might be something I've done but i am trying to add in a couple more podcast feeds and no matter what i do some of them never load any information about the episodes.

"AllFeeds.Add(new Feed(new Uri("http://feeds.twit.tv/aaa_video_hd.xml"), "All About Android", "Description", new Uri("ms-appx:///UI/StaticImages/aaa2048.jpg"), "TWiT"));"

Here is a new feed that i have added for All About Android from TWiT. No matter what i do it will never load the episodes for this feed. I have it setup exactly as the Windows Weekly is setup and it still won't work. If i hit Refresh Episodes while it is loading the whole app will crash. What could be the issue with this?

Download progress is only reported via action center

  • Add in-app UX to show download progress. Re-attach to in-progress downloads and update downloads

  • When download completes update the downloads page

  • Show empty placeholder text when the downloads page is empty

  • If an error occurs with a background download while app is closed, notify the user next time the app launches

No in-app Picture-in-Picture

Whilst video playback continues when navigating away from the player, there is no in-app picture-in-picture currently hence you'll only hear audio play back. Need to add a visual hosted in the navigationrootpage that is dynamically hooked / unhooked when switching to and from now playing page

Concurrent PiP Mode problems

  • Close main window, app won't re-launch because app not handling multi-view re-launch correctly
  • When using concurrent PiP mode and main view is minimized, playback stops

Cant perform Add-Migration

When I try to perform Add-Migration command, I get the following:

PM> add-migration InitialMigration
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeInitializationException: The type initializer for 'BuildCast.DataModel.LocalStorageContext' threw an exception. ---> System.TypeLoadException: Could not load type 'System.Threading.Tasks.Task' from assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
at BuildCast.DataModel.LocalStorageContext..cctor()
--- End of inner exception stack trace ---
at BuildCast.DataModel.LocalStorageContext..ctor()
--- End of inner exception stack trace ---
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)
at System.Activator.CreateInstance(Type type)
at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.<>c__DisplayClass12_3.b__13()
at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(Func1 factory) at Microsoft.EntityFrameworkCore.Design.Internal.DbContextOperations.CreateContext(String contextType) at Microsoft.EntityFrameworkCore.Design.Internal.MigrationsOperations.AddMigration(String name, String outputDir, String contextType) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigrationImpl(String name, String outputDir, String contextType) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.AddMigration.<>c__DisplayClass0_1.<.ctor>b__0() at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_01.b__0()
at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)
Exception has been thrown by the target of an invocation.

the page with a single video info is not responsive

When we click a single video in listview and page opens with its thumbnail and title with option to play and download, The title on that page isnt responsive, so when we resize the screen, half of the title gets disappeared.

Microsoft HoloLens

At Build 2017 there was a demo showing the app using a MR device. However I can't get it working since the latest available release build for the HoloLens is 14393 while this project needs 16299.

when will we have the code

its more than a month now but still no code is in this repo at all, Please can I know when can we expect the code here?

pip mode turns full white while loading

When video is still loading before playing and I turn on the pip mode, whole window goes white and turns back to normal when I come back in normal view mode

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.