Today, in this article
let' learn another concept in windows phone whereby interacting with WCF Service
to receive some message. I think we all are now good to go and implement this
concept.
Question Arises: What
is Media Player Launcher?
In Simple Terms "It
performs simple media tasks launching player. It plays outs requested media
files from directory or isolated storage device."
So, let's get it started
off!!!
Step 1: The Complete Code
of IService1.cs looks like this:
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Runtime.Serialization;
using
System.ServiceModel;
using
System.ServiceModel.Web;
using
System.Text;
namespace
Media_Launcher_WCF
{
// NOTE: You can use the "Rename" command on the "Refactor"
menu to change the interface name "IService1" in both code and config file
together.
[ServiceContract]
public interface
IService1
{
[OperationContract]
string Media();
}
}
Step 2: The Complete Code
of Service1.svc.cs looks like this:
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Runtime.Serialization;
using
System.ServiceModel;
using
System.ServiceModel.Web;
using
System.Text;
namespace
Media_Launcher_WCF
{
// NOTE: You can use the "Rename" command on the "Refactor"
menu to change the class name "Service1" in code, svc and config file together.
public class
Service1 : IService1
{
public
string Media()
{
return "
Whoomp!!!Message from WCF for Media Launcher ";
}
}
}
Step 3: The Complete Code
of Web.Config looks like this:
<?xml
version="1.0"?>
<configuration>
<system.web>
<compilation
debug="true"
targetFramework="4.0"
/>
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<!-- To avoid
disclosing metadata information, set the value below to false and remove the
metadata endpoint above before deployment
-->
<serviceMetadata
httpGetEnabled="true"/>
<!--
To receive exception details in faults for debugging purposes, set the value
below to true. Set to false before deployment to avoid disclosing exception
information -->
<serviceDebug
includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment
multipleSiteBindingsEnabled="true"
/>
</system.serviceModel>
<system.webServer>
<modules
runAllManagedModulesForAllRequests="true"/>
</system.webServer>
</configuration>
Step 4: The Complete Code
of MainPage.xaml looks like this:
<phone:PhoneApplicationPage
x:Class="Media_Player_Launcher_Application.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DesignWidth="480"
d:DesignHeight="768"
FontFamily="{StaticResource
PhoneFontFamilyNormal}"
FontSize="{StaticResource
PhoneFontSizeNormal}"
Foreground="{StaticResource
PhoneForegroundBrush}"
SupportedOrientations="Portrait"
Orientation="Portrait"
shell:SystemTray.IsVisible="True">
<!--LayoutRoot is the root grid where all page
content is placed-->
<Grid
x:Name="LayoutRoot"
Background="Transparent">
<Grid.RowDefinitions>
<RowDefinition
Height="Auto"/>
<RowDefinition
Height="*"/>
</Grid.RowDefinitions>
<!--TitlePanel contains the name of the
application and page title-->
<StackPanel
x:Name="TitlePanel"
Grid.Row="0"
Margin="12,17,0,28">
<TextBlock
x:Name="ApplicationTitle"
Text="Vijay's Media
Player Application" FontFamily="Verdana"
FontSize="22"
Style="{StaticResource
PhoneTextNormalStyle}"/>
<TextBlock
x:Name="PageTitle"
Text="Windows 7 Phone"
Margin="9,-7,0,0" Style="{StaticResource
PhoneTextTitle1Style}"/>
</StackPanel>
<!--ContentPanel
- place additional content here-->
<Grid
x:Name="ContentPanel"
Grid.Row="1"
Margin="12,0,12,0">
<Button
Content="Button"
FontFamily="Verdana"
FontSize="22"
Height="72"
HorizontalAlignment="Left"
Margin="160,67,0,0"
Name="button1"
VerticalAlignment="Top"
Width="160"
Click="button1_Click"
/>
</Grid>
</Grid>
<!--Sample
code showing usage of ApplicationBar-->
<!--<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar
IsVisible="True" IsMenuEnabled="True">
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png"
Text="Button 1"/>
<shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png"
Text="Button 2"/>
<shell:ApplicationBar.MenuItems>
<shell:ApplicationBarMenuItem Text="MenuItem 1"/>
<shell:ApplicationBarMenuItem Text="MenuItem 2"/>
</shell:ApplicationBar.MenuItems>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>-->
</phone:PhoneApplicationPage>
Step 5: The Complete Code
of MainPage.xaml.cs looks like this:
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Net;
using
System.Windows;
using
System.Windows.Controls;
using
System.Windows.Documents;
using
System.Windows.Input;
using
System.Windows.Media;
using
System.Windows.Media.Animation;
using
System.Windows.Shapes;
using
Media_Player_Launcher_Application.ServiceReference1;
using
Microsoft.Phone.Controls;
using
Microsoft.Phone.Tasks;
namespace
Media_Player_Launcher_Application
{
public partial
class MainPage
: PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
}
private
void button1_Click(object
sender, RoutedEventArgs e)
{
Service1Client objClient = new
Service1Client();
objClient.MediaCompleted += new
EventHandler<MediaCompletedEventArgs>(media_Call);
objClient.MediaAsync();
}
static
void media_Call(object
sender, MediaCompletedEventArgs e)
{
MediaPlayerLauncher
objMedia_Player = new MediaPlayerLauncher();
objMedia_Player.Media = new
Uri("http://video.ch9.ms/ch9/6e44/55f3a9d2-879c-4c92-919e-9fd500126e44/iwp30atux_med_ch9.mp4",
UriKind.Absolute);
objMedia_Player.Location = MediaLocationType.Data;
objMedia_Player.Controls = MediaPlaybackControls.All;
objMedia_Player.Orientation = MediaPlayerOrientation.Portrait;
MessageBox.Show(e.Result);
objMedia_Player.Show();
}
}
}
Step 6: The Output of the
Application looks like this:
Step 7: The WCF Service Message Output Application looks like this:
I hope this
article is useful for you.